By their very nature, DIDOs are run on distributed, decentralized computers that require software to operate. The DIDO software itself can be classified as ancillary data and therefore can be distributed just like data to each DIDO node. The DIDO software could include Smart Contract, Distributed Application (ĐApp or DApp), scripts, containers, and DIDO command line interface (CLI) commands.
Smart contracts are programs actually stored on the blockchain, and “triggered” to execute when a set of conditions are met. dApps are applications that don't reside on the blockchain but interact with the blockchain. dApps are used to communicate with smart contacts, and consequently with blockchain.
In other words, dApps can be considered as “blockchain-enabled” application, and smart contracts provide easy access the blockchain. This division of responsibilities is similar to the traditional separation used in Web Application (Web App) between the user-front-end (i.e., Client) and the backed (i.e., Server). Contract development is concerned with managing agreements or transactions.
There are many non-functional benefits of dApps such as: