Você está na página 1de 31

CAPÍTULO 20

Arquiteturas distribuídas
para sistemas colaborativos

Roberta Lima Gomes


Roberto Willrich
Guillermo de Jesús Hoyos Rivera

1 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Objetivo do Capítulo
• Sistemas colaborativos são sistemas distribuídos que
apresentam desafios específicos

• Objetivo do capítulo
– Discutir conceitos sobre as arquiteturas distribuídas utilizadas no
desenvolvimento de sistemas colaborativos
– São apresentados três modelos de arquiteturas de distribuição
utilizados no desenvolvimento de Sistemas Colaborativos:
• arquiteturas centralizadas, descentralizadas e híbridas
– Escolha do modelo tem influência sobre diferentes aspectos do
sistema, como desempenho, tolerância a falhas, segurança, entre
outros.

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 2 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Plano do Capítulo
• Sistemas Colaborativos são Sistemas Distribuídos
• Sistemas Colaborativos e Distribuídos
• Modelos de Arquiteturas de Distribuição
– Arquiteturas Centralizadas, Descentralizadas e Híbridas
• Arquiteturas P2P para Sistemas Colaborativos
– Modelos de Arquiteturas P2P, Tecnologias e Aplicações Colaborativas
P2P
• Arquiteturas Orientadas a Serviço
– Colaboração Orientada a Serviço

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 3 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Sistemas Colaborativos são Sistemas Distribuídos

• Modos de Interação entre os usuários em


Sistemas Colaborativos
– Modos básicos de interação:
• Interação síncrona: cada ação realizada por um membro
do grupo é transmitida imediatamente aos outros
membros
– a colaboração ocorre em tempo-real
• Interação assíncrona: usuários não interagem no
mesmo instante.

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 4 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Modos Básicos de Interação


Assíncrona Síncrona

Editor de Texto Mundos


Agenda Compartilhado Virtuais
de Grupo

Videoconfência

Email Compartilhamento de
Quadro Branco aplicação/desktop
Compartilhado

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 5 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Sistemas Colaborativos são Sistemas Distribuídos

• Complexidade tecnológica enfrentada pelos projetistas de


sistemas colaborativos
– Depende dos modos de interação suportados pelo Sistema
Colaborativo
• Requer o tratamento de diversos desafios tecnológicos, principalmente em
sistemas síncronos
– Vários dos desafios estão relacionados ao ambiente computacional
distribuído
• Ambiente formado pelos computadores utilizados pelos membros do
grupo e infraestrutura básica de comunicação
• Entendimento dos desafios envolvidos exige o estudo das características de
um sistema distribuído

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 6 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Sistemas Colaborativos são Sistemas Distribuídos

• Definição de Sistemas Distribuídos

Sistemas formados por componentes de software e


hardware localizados em computadores autônomos
que se comunicam por troca de mensagens via rede

– Grande parte dos Sistemas Colaborativos são distribuídos

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 7 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Compartilhamento de Recursos
• Compartilhamento de Recursos
– Recursos de hardware (impressora) ou software e
informações (arquivos ou bancos de dados).

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 8 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Compartilhamento de Recursos
– Gerenciadores de recursos: controlam o
acesso aos recursos compartilhados
– Mecanismo de controle de concorrência:
garante a consistência pela
sincronização de acessos
concorrentes

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 9 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Abordagens para o Controle de Concorrência


• Controle de concorrência pessimista
– Define um mecanismo que controla, serializa e sincroniza todas as
operações sobre os recursos compartilhados

• Controle de concorrência otimista


– Em vez de evitar inconsistências, tenta detectá-las e corrigi-las
– Útil para sistemas em que é pouco provável que ações no recurso
compartilhado provoquem inconsistências.

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 10 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Outras Características Desejáveis


• ... além do compartilhamento de recursos
– Transparência de distribuição: possibilita aos usuários a abstração da
distribuição dos componentes (visto como um único sistema local)
– Extensibilidade: determina a facilidade de extensão do sistema
distribuído, sem interrupção ou duplicação dos serviços
– Escalabilidade: capacidade do sistema atender uma grande demanda
por recursos sem a degradação dos serviços oferecidos
– Tolerância a falhas: capacidade do sistema continuar a oferecer os
serviços mesmo quando ocorrer alguma falha
– Interoperabilidade: relacionada à coexistência de hardware/software
de diferentes fabricantes com capacidade de intercomunicação
– Portabilidade: capacidade de um componente ser desenvolvido para
um sistema distribuído de modo que possa ser utilizado em outro
sistema distribuído

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 11 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Sistemas Colaborativos são Sistemas Distribuídos


Troca de Mensagens | Compartilhamento de recursos | Controle de
concorrência | Transparência de distribuição | Extensibilidade |
Escalabilidade | Tolerância a falhas | Interoperabilidade | Portabilidade

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 12 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Sistemas Colaborativos e Distribuídos


• Computação distribuída com suporte a multiusuários
– É tecnologia central para o desenvolvimento da maior parte dos
sistemas colaborativos

• Vários princípios do projeto de sistemas distribuídos são


também fundamentais no projeto de sistemas colaborativos
– Acesso concorrente a recursos compartilhados e ao gerenciamento da
consistência dos recursos são os principais desafios

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 13 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Sistemas Colaborativos e Distribuídos


• Sistemas colaborativos têm problemas específicos
– Controle da concorrência mais complexo
– Necessidade de suporte à comunicação entre os usuários
– Necessidade de implementação de políticas distribuídas que permitam
que os usuários se coordenem enquanto acessam o espaço de trabalho
compartilhado

• Sistemas Colaborativos e Sistemas Distribuídos se distinguem


também quanto à forma de controlar a colaboração
– Sistema colaborativo: controle é realizado sobre a colaboração entre
usuários
– Sistema distribuído: controle é orientado aos componentes
• Visa ocultar destes componentes os problemas relacionados à distribuição
(transparência de distribuição).

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 14 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Sistemas Colaborativos e Distribuídos


• Comparando Sistemas Colaborativos e Sistemas Distribuídos:
Edição Colaborativa
– Sistemas Distribuídos: irá ocultar a existência dos outros usuários que
estão editando o texto (transparência de distribuição)
– Sistemas Colaborativos: usuários devem ter a percepção (awareness)
das atividades realizadas pelos outros participantes do grupo

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 15 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Desafios
• Sistemas colaborativos síncronos
– Aspectos de tempo real
– Sujeitos ao serviço do tipo “melhor esforço” das redes
– Influência da rede
• No tempo de feedback e feedthrough, e nas qualidades de áudio, vídeo e
renderização 3D
• Disponibilidade do sistema

• Segurança é outro desafio


– Preservação da confidencialidade e integridade e identificação dos
usuários
– Ambientes corporativos

• Interoperabilidade
2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 16 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Modelos de Arquiteturas de Distribuição


• Arquitetura conceitual
– Visa definir uma organização apropriada para o sistema
• Desenvolvimento eficiente, código modular, modificável e reutilizável
– Foca no desenvolvimento e manutenção do sistema

• Arquitetura de distribuição
– É definida com base na arquitetura conceitual
– Apresenta o sistema como um sistema distribuído
• Em tempo de execução
– Componentes instanciados em objetos, executados dentro de
processos
– Direciona a implementação do sistema
– Três tipos principais de arquiteturas
• Centralizadas, descentralizadas e híbridas
2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 17 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Arquiteturas Centralizadas
• Segue o modelo cliente-servidor
– O servidor realiza todo o processamento necessário à gerência e
execução da colaboração
– O cliente executa apenas os serviços de apresentação de interface
gráfica

• Implementação simples
– Elimina-se problemas de sincronização, consistência e segurança
– Facilidade para gerenciar concorrência e acomodar latecomers

• Problemas
– Feedback suscetível aos atrasos de rede; muita trocada de informações
– Baixa escalabilidade e baixa tolerância a falhas

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 18 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Arquiteturas Centralizadas

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 19 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Arquiteturas Descentralizadas
• Processamento executado de forma distribuída

• Recursos compartilhados são replicados nos sistemas de cada


usuário
– Maior tolerância a falhas
– Menor tempo de feedback

• Complexidade
– Sincronização e manutenção da consistência
• Espaço de trabalho compartilhado temporariamente inconsistente

• Escalabilidade ainda é um problema?


– Distribuição do processamento, mas... a distribuição causa maior troca
de mensagens entre os clientes
2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 20 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Arquiteturas Descentralizadas Sincronização


direta do estado

Replicação
das ações

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 21 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Arquiteturas Descentralizadas
• Sincronização direta do estado de trabalho compartilhado
– Canal de sincronização direto entre as cópias do espaço de trabalho
– Se uma cópia é alterada, o novo estado do espaço de trabalho (ou
parte deste) é repassado às demais cópias

• Replicação das ações realizadas sobre o espaço de trabalho


compartilhado
– Ações resultantes de interações dos usuários sobre o sistema
colaborativo
– Ações são transmitidas a cada cópia do espaço de trabalho e
executadas localmente
– A consistência do estado é mantida de forma implícita

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 22 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Arquiteturas Híbridas
• Combinam características de arquiteturas centralizadas e
descentralizadas em um único sistema

• Exemplos:
– Um servidor responsável pelo espaço de trabalho compartilhado, e
cada cliente responsável pelo espaço de trabalho privado e
processamento gráfico
• Simplicidade e escalabilidade
– Parte do espaço de trabalho compartilhado é gerenciada pelo servidor
e outra parte é gerenciada pelos clientes de forma distribuída
• O servidor aplica um mecanismo pessimista (recursos compartilhados
críticos)
• O cliente aplica um mecanismo otimista (melhor feedback)
– Acomodar em um mesmo ambiente sistemas com diferentes
capacidades computacionais
2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 23 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Arquiteturas P2P para Sistemas


Colaborativos
• São uma alternativa ao paradigma Cliente-Servidor

• Usam a infraestrutura de rede existente mas as redes P2P


adaptam-se criando uma topologia própria, chamada de rede
Sobreposta, ou rede Overlay

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 24 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Características e Propriedades dos Sistemas


P2P
• Características
– Inexistência de coordenação e de banco de dados centralizados
– Nenhum nó tem a visão global do sistema
– Todos os dados e serviços são acessíveis a partir de qualquer nó
– Todos os nós são autônomos
• nós e conexões não são confiáveis

• Propriedades
– Escalabilidade
– Robustez
– Flexibilidade

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 25 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Modelos de Arquiteturas P2P


• Em função da forma de construção das redes P2P, três
modelos são definidos
– Centralizado
– Descentralizado e não estruturado
– Hierárquico, híbrido ou semicentralizado

• Sistemas Colaborativos com o uso da Tecnologia P2P


– Skype (http://www.skype.com)
– PeerWare (Cugola e Picco, 2003)
– NetIsle (Shtykh e Jin, 2003
– Xpeer (Sartiani et al., 2004)

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 26 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Arquitetura Orientada a Serviço


• SOA – Service Oriented Architecture
– Serviço
• Componente de software independente e autocontido que oferece um
conjunto de funcionalidades

• Modelo de base de SOA


– Provedor de Serviço
• Disponibiliza um serviço
– Serviço de Descoberta
• Nele, são publicados os serviços pelos respectivos provedores
– Consumidor de Serviço
• Busca um serviço no Serviço de Descoberta, e recebe a descrição do
serviço para poder utilizá-lo

• Arquitetura Híbrida
2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 27 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Arquitetura Orientada a Serviço

• Tecnologias
– SOAP, WSDL UDDI
– RESTful

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 28 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Colaboração Orientada a Serviço


• SOC – Service Oriented Collaboration
– Colaboração entre serviços baseados em SOA
– Ex: a composição de serviços por meio de coreografia

• Sistemas Colaborativos + SOA


– Usuários colaborando por meio da criação e compartilhamento de
serviços
• Usuários são Provedores e Consumidores de serviços
– Desenvolver e implantar um serviço não é trivial!
• Utilizar frameworks e arquiteturas genéricas

• Desenvolvimento de Sistemas Colaborativos Orientados a


Serviço

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 29 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Exercício
• Na atualidade, um dos desafios na área Sistemas Colaborativos
é prover suporte à colaboração ad hoc em que usuários
móveis, desconhecidos entre si, possam espontaneamente
iniciar uma atividade colaborativa. Explique por que SOA pode
ser uma solução adequada para o desenvolvimento deste tipo
de sistema colaborativo.

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 30 30
CAP.20 - Arquiteturas distribuídas para sistemas colaborativos

Sistemas Colaborativos
Pimentel, M., Fuks, H. (Org.)
Editora SBC/Elsevier, 2011
ISBN 978-85-352-4669-8

Esta apresentação é para ser usada como conteúdo de apoio na preparação de aulas relacionadas ao capítulo “Arquiteturas distribuídas para sistemas colaborativos” do livro
“Sistemas Colaborativos”.

O conteúdo desta apresentação é de responsabilidade dos autores do capítulo. Caso alguma imagem contida nessa apresentação seja protegida por direitos autorais e os
autores não tenham a respectiva autorização para divulgação, solicitamos que entrem em contato com nosso Serviço de Atendimento para que a imagem seja imediatamente
retirada da apresentação.

Você, professor, pode modificar essa apresentação para o seu uso individual em suas aulas, e assim se torna corresponsável pela conteúdo da apresentação. A editora se exime
de qualquer responsabilidade sobre as suas modificações.

Nem a editora nem os organizadores assumem qualquer responsabilidade por eventuais danos ou perdas a pessoas ou bens, originados do uso dessa apresentação.

2011 - Roberta Lima Gomes, Roberto Willrich, Guillermo de Jesús Hoyos Rivera 31 30

Você também pode gostar