Centralized vs decentralized systems
Systems | Centralized | Decentralized |
---|---|---|
Worldview | Omniscient observer | No omniscient observer |
Computation | Deterministic/non-deterministic | Indeterministic |
Programs | Sequential / parallel | Distributed |
Execution | Synchronous | Asynchronous |
Model | Turing | Actor/Data-flow (?) |
Communication | Via shared memory space | Via message passing |
The above table illustrates the relationships between computing systems, computational models, programming paradigms and execution mechanisms. Centralized systems are based on the worldview with omniscient observer, require deterministic or non-deterministic computing, sequential or parallel programming paradigms, synchronous or synchronized execution and, conceptually, are grounded in Turing computing model. Decentralized systems, on the other hand, have to be based on a worldvew without the omniscient observer, require indeterministic computation, distributed programming paradigm, asynchronous execution and have to be grounded in different model of computation-- Actor model.
In order to justify the indeterministic computation -> distributed programming -> asynchronous execution -> Actor model line of thinking it is suffice to say that the current state of the technological progress requires design and introduction of decentralized systems. Exploding World Wide Web, Internet of Things / Industrial Internet, peer-to-peer, cognitive computing paradigm, intelligent systems and, in general, the explosion of the amount of information available for processing on the Internet are manifestations of this progress. Probably, decentralized IT systems are not going to completely out-compete or change prevailing centralized ones, but we will necessary see more decentralization in IT infrastructure.