Você está na página 1de 26

Desenvolvimento de

Aplicações Distribuídas

Unidade 1 – Desafios e metas


Sistemas de Informação
Professor: Wagner Cipriano | wagnerbhbr@gmail.com
Conteúdo
 Características e Desafios SD
 Transparência

SI | DAD | Desafios e características 2


Disponibilização de Recursos
 facilitar o acesso de recursos remotos pelos usuários, bem como
compartilhá-lo de modo controlado e eficiente

 conectar usuários a recursos facilita a colaboração e a troca de informação,


o que pode ser exemplificado pelo sucesso da Web.

 entretanto, a medida que a conectividade e compartilhamento aumentam,


a segurança se torna mais importante

SI | DAD | Desafios e características 3


Desafios (Metas)

Heterogeneidade

Abertura

Segurança

Escalabilidade

Gerenciamento de falhas

Concorrência

Transparência

SI | DAD | Desafios e características 4


Heterogeneidade
 Diversidade na configuração de:
 Redes envolvidas
 Hardware dos equipamentos
 Sistemas operacionais (SO)
 Linguagens de programação
 Implementações de diferentes desenvolvedores
 Os middlewares são como camadas de software que fornecem uma
abstração de programação assim como o mascaramento da diversidade de
redes, dos hardwares, dos sistemas operacionais e das linguagens de
programação (Ex: RPC, CORBA, DCOM, Java RMI).
 Migração de código que se refere aos códigos que podem serem enviados
de um computador para outro para serem executados no destino (Ex:
JavaScript, Applets Java). Isto requer a existência de máquinas virtuais como
a JVM.

SI | DAD | Desafios e características 5


Abertura
 Abertura se preocupa com a extensão e as melhorias dos SDs.
 Novos componentes tem que se integrar com os componentes existentes.
 conformidade com interfaces bem definidas;
 suporte a portabilidade de aplicações;
 facilidade de interoperabilidade

 Portabilidade: Interfaces detalhadas dos componentes.


 Se especificada apropriadamente, a definição de uma interface permite que um processo arbitrário
que necessite de desta interface possa se comunicar com um processo que provê esta interface.

 Interoperabilidade: Diferenças na representação de tipos de dados


utilizados nas interfaces em processadores ou plataformas diferentes
precisam ser resolvidas.

SI | DAD | Desafios e características 6


Segurança
 Em sistemas distribuídos, clientes enviam requisições para acessar dados
mantidos pelos servidores ou recursos na rede
 Segurança é necessária para:
 Preservar a confidencialidade do conteúdos das mensagens: segurança e
privacidade
 Identificar um usuário remoto ou outro agente corretamente (autenticação)

 Novos desafios
 Ataques de negação de serviço (DDOS)
 Segurança de código móvel

SI | DAD | Desafios e características 7


Escalabilidade
 Adaptação de sistemas distribuídos para:
 Acomodar mais usuários
 Responder rápido (Este é o mais difícil)

 Normalmente feito pela adição de um ou mais processadores.


 Os componentes não devem ser trocados quando a escala aumenta.
 Projete componentes para serem escaláveis!

 Dimensões
 nº de usuários e/ou processos (tamanho);
 distância máxima entre nós (geográfica);
 nº de domínios possíveis (administrativa).

SI | DAD | Desafios e características 8


Escalabilidade - problemas

 Limitam a Escalabilidade:
 Serviços Centralizados – servidor único para todos os usuários;
 Dados Centralizados – uma única agenda telefônica online;
 Algoritmos Centralizados – roteamento baseado em informações globais.

SI | DAD | Desafios e características 9


Escalabilidade geográfica
 Sistemas projetados para redes locais
 baseados em comunicação síncrona
 banda da rede e latência na comunicação podem comprometer a performance
 Soluções centralizadas que impedem a “Size Scalability”

 Técnicas:
 esconder latências de comunicação: comunicação assíncrona, compactação de
mensagens, validações do lado do cliente;
 distribuição dos dados e da computação: mover computação para os clientes (Java
Applets), DNS descentralizado, World Wide Web - serviço de informação descentralizado;
 técnica de replicação e armazenamento local: Servidores de Arquivos e Bancos de
Dados replicados, Caches Web (navegadores e proxies) ;

SI | DAD | Desafios e características 10


Escalabilidade Administrativa
 Políticas conflitantes relacionadas ao uso, gerenciamento e segurança dos
recursos

 Na expansão de um Sist. Distribuído em outro domínio administrativo, duas


medidas de segurança são necessárias:
 ambos os sistemas (distribuídos e domínio) necessitam se proteger de
ataques maliciosos um do outro.

SI | DAD | Desafios e características 11


Gerenciamento de Falhas
 Hardware, software e redes falham!
 Sistemas distribuídos devem manter a disponibilidade mesmo com baixos
níveis de confiabilidade em termos de hardware, software e rede.
 Tolerância a falhas é alcançada com estratégias de recuperação e
redundância.

SI | DAD | Desafios e características 12


Concorrência
 Componentes em sistemas distribuídos são executados em processos
concorrentes.
 Componentes acessam e atualizam recursos compartilhados (e.g. variáveis,
bancos de dados, drivers de dispositivos).
 Integridade pode ser comprometida se atualizações concorrentes não são
coordenadas adequadamente.
 Atualizações pedidas
 Análise de inconsistências

SI | DAD | Desafios e características 13


Transparência
 Distribuição Transparente: esconder o fato de processos e recursos do
sistema distribuído se encontrarem fisicamente espalhados (distribuídos)
em múltiplos computadores
 Capacidade de se apresentar aos seus usuários e aplicações como um
sistema único.

 Diversos aspectos estão associados à transparência: acesso, localização,


concorrência, replicação, falhas, mobilidade, desempenho e escalabilidade

SI | DAD | Desafios e características 14


Tipos de Transparência

SI | DAD | Desafios e características 15


Grau de Transparência
Alcançar transparência de distribuição de forma completa é exigir muito:

 usuários podem se encontrar em diferentes lugares;


 esconder falhas de rede e nós é impossível na teoria e na prática;
 não é possível distinguir um computador com falha de um lento;
 como saber se um servidor completou uma tarefa antes da pane;

 transparência completa diminui a performance:


 manutenção da cache atualizada como servidor;
 descarga de operações de escrita para o disco como forma de aumentar a tolerância a
falhas

SI | DAD | Desafios e características 16


Transparência de Acesso
 Permite que recursos locais e remotos sejam acessados usando operações
idênticas.

 Exemplos:
 Sistema de Arquivos de Rede (NFS)
 Navegação na Web
 Consultas SQL

SI | DAD | Desafios e características 17


Transparência de Localização
 Permite que recursos sejam acessados sem conhecimento da sua localização
 Exemplos:
 Sistema de Arquivos de Rede (NFS)
 Páginas Web
 Tabelas em bancos de dados distribuídos

SI | DAD | Desafios e características 18


Transparência de Concorrência
 Permite que diversos processos manipulem recursos compartilhados de
forma concorrente sem interferência entre eles
 Exemplos:
 Bancos de dados
 Sistema de Arquivos de Rede (NFS)

SI | DAD | Desafios e características 19


Transparência de Replicação
 Permite que múltiplas instâncias dos recursos sejam utilizadas para
aumentar a confiabilidade e o desempenho sem que os usuários ou
aplicações tenham conhecimento das réplicas
 Exemplos:
 Content Delivery Network (CDN)
 Bancos de dados distribuídos
 Web Pages espelhadas

SI | DAD | Desafios e características 20


Transparência de Replicação

CDN Akamai

SI | DAD | Desafios e características


21
Transparência de Falhas
 Permite a ocultação de falhas, possibilitando a conclusão das tarefas apesar
da falha de alguns componentes envolvidos
 Exemplos
 DNS - Domain Name System
 Bancos de dados distribuídos

SI | DAD | Desafios e características 22


Transparência de Mobilidade
 Permite a movimentação de clientes e recursos sem que isto afete a
operação de usuários ou aplicações.
 Exemplos:
 Acesso a Internet em dispositivos móveis
 Sistemas de Arquivos de Rede (NFS), Google Drive, Dropbox

SI | DAD | Desafios e características 23


Transparência de Desempenho
 Permite que o sistema se adapte para melhorar o desempenho a medida
que as cargas variam
 Exemplos:
 Distributed make (distribui os arquivos – makefiles - para que o processo de build ocorra em n hosts diferentes)

SI | DAD | Desafios e características 24


Transparência de Escalabilidade
 Permite que o sistema e as aplicações se expandam em escala sem alterar a
estrutura do Sistema e os algoritmos.
 Exemplos
 World Wide Web
 Bancos de dados distribuídos

 Cloud computing: Scaling server and resources in cloud:



scaling up

scaling down

SI | DAD | Desafios e características 25


Armadilhas
 Muitos sistemas distribuídos são desnecessariamente complexos devido a
erros de projeto que necessitaram ajustes posteriores
 Há muitas falsas premissas:
 rede confiável ?
 rede é segura ?
 rede é homogênea ?
 topologia não muda ?
 latência é próxima de zero ?
 banda da rede é infinita ?
 transporte é de custo zero ?
 há um único administrador ?

 Muitas das suposições listadas estão relacionadas com as propriedades únicas dos
sistemas distribuídos: confiabilidade; segurança, heterogeneidade; topologia da rede;
latência e banda; custo do transporte e domínios administrativos

SI | DAD | Desafios e características 26

Você também pode gostar