A distributed system is a system that has several nodes running parallel, data processing. Nodes need not necessarily have homogeneous roles in the task performed, and heterogeneity is very common.
Can be considered among the types of distributed systems:
- Cloud computing systems.
- Iot - Internet of Things.
- P2P systems.
- Botnets.
- Systems that collaborate with each other in an integrated way through message exchange.
- Cryptocurrencies.
- etc..
The rule here is that there are several parts of the system talking in an integrated way. Several protocols can be used to govern the communication of these. The most common ones at present are SOAP (along with related technologies such as WS-*, WSDL, UDDI, among others) and REST (which takes advantage of HTTP). There are and there have been other technologies in this regard, such as CORBA (which, fortunately, is falling into disuse). Integration can even be done via email, FTP, TCP or UDP sockets.
The structure of the system as a whole is often an orchestration, where one of the nodes initiates and coordinates the operation as a whole and the other nodes only perform specific tasks (they can also be orchestrations themselves). Another structure is choreography, where the services talk to each other but without a central control or coordination.
In some cases, a single node (or pool of nodes) may be part of multiple distributed systems. For example, company A system can talk to the postal system to map ZIP to streets. Meanwhile, Company B, which has no relationship to Company A, can do the same.
Possible duplicate of Concurrent Programming x Parallel x Distributed
– Marco Souza
@Marconciliosouza the answer did not clear my doubt, it is focused on a programming style than on the design of a distributed system or its architecture. Could even be related.
– gato
In that case you are opposed to a centralized system. I am in the rush here, I will not be able to answer so soon
– Jefferson Quesado
Supplementary reading: https://answall.com/q/73059/132
– Victor Stafusa