# Distributed Scheduler - [Introduction](#section11660541593) - [System Architecture](#section13587185873516) - [Directory Structure](#section161941989596) - [Repositories Involved](#section1371113476307) ## 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 ability startup: Starts an ability on a remote device. - Remote ability migration: Migrates an ability to a remote device. - Remote ability binding: Binds an ability on a remote device. - System service management: Provides system service startup, registration, and query on the local device as well as system service query on a remote device. ## System Architecture **Figure 1** Distributed Scheduler architecture ![](figures/dms-architecture.png) ## Directory Structure ``` /foundation/distributedschedule ├── dmsfwk # DMS framework (DMS is short for Distributed Manager Service, also called the Distributed Scheduler Service) ├── safwk # System ability framework ├── samgr # System ability manager ├── dms_fwk_lite # Lightweight DMS framework ├── safwk_lite # Lightweight foundation process ├── samgr_lite # Lightweight system ability manager ``` ## Repositories Involved **Distributed Scheduler subsystem** distributedschedule\_dms\_fwk distributedschedule\_safwk distributedschedule\_samgr distributedschedule\_safwk\_lite hdistributedschedule\_samgr\_lite distributedschedule\_dms\_fwk\_lite