2º TRABALHO EM GRUPO (Resumo)
2º TRABALHO EM GRUPO (Resumo)
2º TRABALHO EM GRUPO (Resumo)
(Licenciatura em informática)
Universidade Rovuma
Nampula
2024
Helton Conorio Lucas
Universidade Rovuma
Nampula
2024
Índice
1. Introdução...........................................................................................................................5
1.1. Tema.............................................................................................................................6
1.2. Objectivos.....................................................................................................................6
2. Referencial Teórico.............................................................................................................7
3. Comunicação Cliente-Servidor...........................................................................................8
3.2 Categorias dos Sistemas Cliente-Servidor 2.1. Cliente Magro (Thin Client)..............8
4.7 Endereçamento...........................................................................................................11
4.8 Atomicidade...............................................................................................................11
4.9 Sincronização.............................................................................................................12
5.1 Arquitetura.................................................................................................................12
5.3 Indexação...................................................................................................................13
5.4 Busca..........................................................................................................................13
6.2 Características:...........................................................................................................15
6.5 Componentes:.............................................................................................................15
7. Conclusão..........................................................................................................................17
8. Referencias Bibliográficas................................................................................................18
1. Introdução
Os ambientes computacionais distribuídos, a comunicação entre processos é um elemento
essencial para garantir o funcionamento eficiente e coordenado dos sistemas. Diversos
paradigmas de comunicações surgiram para atender às diferentes necessidades e arquitecturas,
abrangendo desde a comunicação entre processos distribuídos até a interacção entre clientes e
servidores, passando pela comunicação em grupo e redes peer-to-peer (P2P). Essas
modalidades de comunicação estabelecem os fundamentos para a troca de informações em
ambientes distribuídos, permitindo a coordenação de recursos e a execução de operações de
forma colaborativa e descentralizada.
1.1. Tema
Segundo MARCONI e LAKATOS (2001), tema é o assunto que se deseja provar ou
desenvolver. Pode surgir de uma dificuldade prática enfrentada pelo coordenador, da sua
curiosidade científica, de desafios encontrados na literatura de outros trabalhos ou da própria
teoria, neste contexto constitui como tema desse trabalho o seguinte:
1.2. Objectivos
Para a realização deste trabalho, foram traçados os seguintes objectivos:
Revisão bibliográfica que constitui na leitura de várias obras que falam sobre assuntos
relacionados com o tema do presente trabalho;
2. Referencial Teórico
2.2 Comunicação entre Processos Distribuídos
A comunicação entre processos distribuídos é crucial para a operação de sistemas
distribuídos, permitindo a troca de informações e a coordenação entre computadores
independentes que se apresentam como um único sistema coerente aos usuários finais
(Tanenbaum, 2018). Essa comunicação é vital para a cooperação e funcionamento
harmonioso dos sistemas.
3. Comunicação Cliente-Servidor
O modelo cliente-servidor é uma interacção onde o cliente solicita informações e o servidor as
fornece. O cliente envia uma solicitação que o servidor processa e responde.
3.2 Categorias dos Sistemas Cliente-Servidor 2.1. Cliente Magro (Thin Client)
O servidor realiza a maior parte do processamento, com o cliente servindo apenas como
interface. Exemplo: navegador Web.
3.3 Cliente Gordo (Fat Client)
O cliente tem capacidade de processamento e armazenamento, executando operações
independentes do servidor. Exemplo: software de edição de vídeos.
UDP (User Datagram Protocol): Protocolo rápido, sem conexão, não garante entrega
ordenada ou sem erros. Exemplo: jogos online, transmissões ao vivo.
Conexão: Estabelecida via sockets entre cliente e servidor para troca bidireccional de
dados.
Conferências multimídia.
Jogos distribuídos.
Tipos de Grupos
Grupos Abertos: Qualquer processo pode ingressar, mas são mais vulneráveis a
ataques (Tanenbaum & Steen, 2007).
Nos grupos fechados, apenas membros podem enviar mensagens; nos abertos, qualquer
processo pode enviar mensagens.
4.7 Endereçamento
Endereçar membros do grupo é fundamental para entrega precisa de mensagens. Pode ser
feito por número de máquina, por processo, ou por nomes ASCII de um servidor de nomes.
Processos escolhem endereços aleatoriamente em um grande espaço de números, com um
servidor de nomes mantendo a consistência (Coulouris et al., 2013).
4.8 Atomicidade
Atomicidade garante que uma operação em múltiplos nós seja completada com sucesso por
todos ou nenhum nó. Protocolos como Paxos ou Raft asseguram que todos os nós cheguem a
um acordo sobre o resultado, mantendo a consistência dos dados. Transações distribuídas
usam commit de duas ou três fases para garantir atomicidade (Birman, 2001).
4.9 Sincronização
Sincronização coordena a ordem de execução de eventos entre nós distribuídos (Birman,
2001):
Acordo Distribuído: Consenso entre nós sobre uma decisão comum (protocolos
Paxos e Raft).
5.1 Arquitetura
Arquitetura é a estrutura e organização lógica de um sistema computacional (Ferreira, 2004).
A comunicação P2P é uma arquitetura descentralizada onde dispositivos se comunicam
diretamente, sem depender de servidores centralizados (O'Reilly, 2001). Cada dispositivo
pode agir como cliente e servidor, permitindo troca direta de informações (Jones & Smith,
2005). Essa arquitetura oferece maior robustez e escalabilidade, eliminando pontos únicos de
falha (Adams, 2009).
5.2 Diferenças entre Arquitetura Par-a-Par e Cliente-Servidor
Par-a-Par:
Informação distribuída.
Cliente-Servidor:
Informação concentrada.
5.3 Indexação
Indexar é ordenar em forma de índice (Ferreira, 2004). A indexação em sistemas P2P é
essencial para que dispositivos encontrem recursos disponíveis (Adamic, 2003). Abordagens
como tabelas de hash distribuídas (DHTs), como o Kademlia DHT, permitem armazenamento
e busca eficiente de chaves na rede (Kleinberg, 2000). DHTs ajudam a otimizar a busca em
grandes redes P2P (Newman, 2010). DHTs são sistemas distribuídos descentralizados que
fornecem um serviço de lookup similar a uma tabela hash, escalando para grandes números de
nós e gerenciando chegadas e saídas contínuas (Wikipédia, s.d.).
5.4 Busca
Buscar é localizar determinado item de informação em um conjunto de dados (Ferreira, 2004).
A busca em sistemas P2P é uma área de pesquisa ativa, com diferentes abordagens para
melhorar eficiência e precisão em redes descentralizadas (Johnson et al., 2008). Algoritmos de
busca como BFS e DFS podem ser adaptados para redes P2P, permitindo descoberta eficiente
de recursos (Taylor & Brown, 2007).
5.5 Integridade e Proteção
Integridade e proteção de dados em sistemas P2P são críticas, especialmente em ambientes de
baixa confiança (Stallings, 2011). Criptografia e assinaturas digitais garantem segurança e
autenticidade das informações trocadas (Smith, 2014). Mecanismos de controle de acesso e
sistemas de reputação são utilizados para mitigar riscos e garantir integridade dos dados
(Brown & Miller, 2006).
RPC (Remote Procedure Call): Permite que um processo chame funções em outro
processo remoto como se fossem locais (implementações: gRPC, CORBA, XML-
RPC).
6.2 Características:
Semelhante a RPC, mas para objetos distribuídos: Utiliza conceitos de
programação orientada a objetos e referências de objeto como parâmetros em
invocações remotas.
Semântica de Invocação
At-Least-Once: Chamada executada pelo menos uma vez, podendo haver múltiplas
execuções em caso de falhas (exemplo: sistema de email).
Implementação de RMI/RPC
6.5 Componentes:
Módulo de Comunicação: Transmite mensagens entre cliente e servidor,
empacotando e desempacotando informações.
Módulo de Referência Remota: Facilita a transformação entre referências de objeto
local e remoto, criando referências de objeto remoto quando necessário.
Definição: Extensão do modelo Java RMI que permite invocação de métodos em objetos
distribuídos, simplificando a comunicação entre objetos Java em diferentes JVMs (Gosling,
Joy e Steele, 1996).
7. Conclusão
A comunicação entre processos distribuídos é um campo vasto e dinâmico, que continua a
evoluir à medida que novas tecnologias e demandas surgem. Desde a comunicação cliente-
servidor tradicional até os sistemas peer-to-peer descentralizados, as soluções de comunicação
reflectem a diversidade de cenários e requisitos encontrados em ambientes distribuídos. A
capacidade de escolher e implementar adequadamente os protocolos e mecanismos de
comunicação certos é essencial para garantir o desempenho, a segurança e a confiabilidade
dos sistemas distribuídos, possibilitando a interacção eficiente entre processos e a realização
de operações distribuídas de forma transparente para os usuários. Nesse sentido, o estudo e a
compreensão contínua das diferentes modalidades de comunicação entre processos
distribuídos são fundamentais para impulsionar a inovação e enfrentar os desafios que surgem
nesse ambiente complexo e interconectado.
8. Referencias Bibliográficas
Gonçalves, A. (2019). Sistemas Distribuídos. FCA Editora.