• Nenhum resultado encontrado

1-SistemasDistribuidos

N/A
N/A
Protected

Academic year: 2021

Share "1-SistemasDistribuidos"

Copied!
63
0
0

Texto

(1)

Pós graduação em Redes e Telecomunicações:

Tecnologias Convergentes

Implementação de Aplicações e Serviços de Telecom

Anderson Theobaldo

(2)

Critérios de avaliação:

Avaliação - 40 pontos

Exercícios - 45 pontosParticipação - 15 pontos

(3)

SAMPAIO, Cleuton. SOA e Web services em

Java. Rio de Janeiro: Brasport, 2006.

TANENBAUM, Andrew S.; STEEN, Maarten van.

Sistemas Distribuídos: Princípios e Paradigmas.

Pearson, 2007.

COULOURIS, George; DOLLIMORE, Jean; KINDBERT, Tim. Sistemas Distribuídos –

Conceitos e Projetos. Bookman, 2007

DEITEL, Harvey M.; DEITEL, P.J., Java Como

Programar, 8a. edição, editora Prentice Hall, 2010.

(4)

http://www.w3.org/TR/soap

/ -

Especificação 1.2 do padrão SOAP

http://

www.w3.org/TR/wsdl - Especificação

do padrão WSDL

http://

www.tmforum.org/TMForumFrameworx/191

1/Home.html

- TM Forum Frameworx

Bibliografia

(5)

Sumário

Sistemas Distribuídos

Telecomunicações

(6)

Sistemas Distribuídos

O que é um Sistema Distribuído?

“Um sistema

executando em uma

coleção de

computadores

independentes que

aparecem para os

usuários deste como

um único

computador.”

(Tanenbaum)

“Um sistema

executando em uma

coleção de

computadores

independentes que

aparecem para os

usuários deste

como

um único

computador

.”

(Tanenbaum)

“Um sistema em que

componentes de

hardware e software

localizados em

computadores em rede

se comunicam e

coordenam suas ações

por passagem de

mensagens.”

(Coulouris et al)

“Um sistema em que

componentes de

hardware e software

localizados em

computadores em rede

se

comunicam

e

coordenam

suas ações

por

passagem de

mensagens

.”

(7)

Sistemas Distribuídos

“Definição curiosa” de Lamport:

“Um sistema distribuído é aquele onde eu não consigo

fazer nada porque algum computador do qual eu nunca

tinha ouvido falar falhou.”

Leslie Lamport é um famoso pesquisador da área de sistemas distribuídos, tendo feito diversas contribuições em temas como ordenação de mensagens, sincronização de relógios, tolerância a falhas e consenso.

(8)

Sistemas Distribuídos

Fatores motivadores:

Economia

Necessidade de compartilhar recursos

Melhoria da relação custo/benefício entre

investimento e desempenho (infraestrutura)

Evolução tecnológica

Microprocessadores de alto desempenho e

baixo custo

(9)

Sistemas Distribuídos

Fatores motivadores:

O uso de sistemas de informação e redes

de comunicação tornam-se cada vez mais

importantes;

Com o aumento da complexidade dos

sistemas em geral, os sistemas

distribuídos passam a ser cruciais nas

infra-estruturas de informação de hoje e do

futuro;

(10)

Sistemas Distribuídos

Características

Conjunto de máquinas autônomas

Conectadas por canais de comunicação

Que se comunicam por mensagens

Sem um estado global

(11)

Sistemas Distribuídos

Características

Desenvolver uma aplicação distribuída é mais

complexo do que uma aplicação centralizada

Desafios:

Heterogeneidade

Ser aberto

Segurança

Escalabilidade

Tolerância a Falhas

Concorrência

Transparência

(12)

Sistemas Distribuídos

Heterogeneidade

Variedade e diferença em termos de:

Hardware

Sistemas operacional

Rede

Linguagem de programaçãoFabricante

Exemplos de heterogeneidade na Internet

Diferentes implementações do mesmo conjunto de protocolos para diferentes tipos de rede: IP, TCP, UDP, SMTP

Diferentes padrões de representação de dados: IDL, XMLDiferentes padrões de bibliotecas: POSIX, DLL

Diferentes padrões de invocação de serviços: COM, CORBA, RMI, SOAP

(13)

Sistemas Distribuídos

Abertura

Facilidade de extensão e atualização

Adição de novos recursos e serviços

Re-implementação de serviços existentes

Depende que as interfaces de acesso aos principais componentes do sistemas sejam conhecidas e estejam disponíveis para os

programadores.

Exemplos de abertura na Internet

Especificações controladas e atualizadas por um Comitê GestorNovos produtos e serviços implementados de acordo com as

especificações vigentes

Conformidade da implementação deve ser testada e verificada para garantir o correto funcionamento do sistema (Quem verifica?)

(14)

Sistemas Distribuídos

Segurança

Proteção para recursos compartilhados

Confidencialidade (proteção contra usuários não autorizados)

Ex.: Acesso a dados sobre salário, histórico médico, preferências sexuais – Integridade (proteção contra alteração e corrupção)

Ex.: Alteração indevida de dados usados em transações bancárias – Disponibilidade (proteção contra interferência ao meio de acesso) Ex.: Queda ou sobrecarga do servidor ou do meio de comunicação

Principais mecanismos de segurança na Internet

Firewall

Assinaturas digitais

Canais de seguros de comunicação

Desafios recentes

Ataques de negação de serviçoSegurança para código móvel

(15)

Sistemas Distribuídos

Escalabilidade

Capacidade do sistema permanecer operando de forma efetiva mesmo diante de um aumento significativo do número de usuários e/ou dos recursos disponíveis.

Principais desafios:

Controlar o custo dos recursos físicosControlar perdas de desempenho

Prevenir o esgotamento dos recursos de software

Evitar “gargalos” de desempenho na rede ou nos próprios servidores

Principais técnicas:

ReplicaçãoCaching

(16)

Sistemas Distribuídos

Tolerância a falhas

Falhas são inevitáveis em sistemas computacionais

Resultados incorretos

Interrupção não planejada do serviço antes de sua conclusão

Falhas em sistemas distribuídos são parciaisTécnicas de tratamento de falhas mais comuns:

Detecção (ex. bits de paridade)

Mascaramento (ex. retransmissão de mensagens)Tolerância (ex. informar o usuário do problema)Recuperação (ex. transações em BD’s)

Redundância (ex. replicação de tabelas no DNS)

Sistemas distribuídos devem oferecer alta disponibilidade de recursos mesmo diante da ocorrência de falhas

Disponibilidade: medida da proporção do tempo que um recurso está disponível para uso

(17)

Sistemas Distribuídos

Concorrência

Suporte para múltiplos acessos simultâneos a um ou

mais recursos compartilhados

Possibilidade de inconsistências quando os recursos são alterados

Serviços que representam recursos compartilhados

devem ser responsáveis por garantir que as operações

de acesso os mantenham em um estado consistente

Válido para servidores e objetos de aplicações

Técnicas mais comuns:

Sincronização de acesso (ex.: exclusão mútua distribuída)Protocolos de controle de concorrência

(18)

Sistemas Distribuídos

Transparência

Abstração para os usuários e programadores de aplicação da separação física dos recursos em um sistema distribuído

Sistema percebido como um “todo” coerente ao invés de uma coleção de partes independentes

Formas de transparência

Transparência de acesso: permite o acesso a componentes remotos e locais através das mesmas operações

Transparência de localização: permite o acesso a componentes sem conhecimento da sua localização física

Transparência de concorrência: permite a execução concorrente de múltipla operações sobre o mesmo conjunto de recursos sem causar interferência entre elas

Transparência de replicação: permite usar múltiplas instâncias de um mesmo recurso lógico sem conhecimento da existência de réplicas

(19)

Sistemas Distribuídos

Transparência

Formas de transparência (cont.)

Transparência de falha: permite esconder a ocorrência de falhas dos usuários e programadores

Transparência de mobilidade (migração): permite a realocação de recursos e aplicações sem afetar o seu uso

Transparência de desempenho: permite a re-configuração do sistema para aumentar o seu desempenho conforme varia a carga de trabalho – Transparência de escala: permite a expansão do sistema e de suas

aplicações sem exigir mudanças significativas na infra-estrutura existente

As duas formas mais importantes são acesso e localização!

Suas presenças (ou ausências) afetam profundamente a maneira como os recursos são utilizados em um sistema distribuído

(20)

Sistemas Distribuídos

Transparência

Exemplos de transparência:

Ferramenta para “exploração” de arquivos que mantêm as mesmas opções de navegação para pastas locais e remotas

API para acessar dados que utiliza as mesmas operações para dados locais e remotos

Exemplos de falta de transparência:

Sistema distribuído onde só é possível acessar arquivos remotos via

FTP

Serviço de jogos online que precisa ser tirado do ar para acrescentar ou trocar um servidor

(21)

Sistemas Distribuídos

Transparência

Classificação quanto à dificuldade de implementação (hierarquia de

dependência) e nível (usuário ou programador)

Nível do usuário: distribuição física dos recursos é imperceptível para os usuários das aplicações (ex.: navegador da Web)

Nível do programador: distribuição física dos recursos é imperceptível tanto para os usuários quanto para os programadores das aplicações (ex.: programação com middleware ou SO distribuído)

Importante: transparência total pode ser indesejável ou até mesmo impossível na prática!!

(22)

Sistemas Distribuídos

Definições:

Middleware

Infra-estrutura de software que fica entre o sistema operacional e uma aplicação distribuída

Tem como objetivo tornar mais simples e produtivo o desenvolvimento de uma aplicação distribuída

Oferece abstrações/recursos de mais alto nível que torna transparente ao programador detalhes de programação em redes

Procura fazer com que a programação distribuída seja mais semelhante à programação centralizada

(23)

Sistemas Distribuídos

(24)

Sistemas Distribuídos

Principais exemplos de Middleware :

Sun RPC (Remote Procedure Calls)

OMG CORBA (Common Request Broker Architecture)Microsoft D-COM (Distributed Components Object Model)Sun Java RMI

Middleware modernos

Melbourne Gridbus – para Grid computingIBM WebSphere

Microsoft .NETSun J2EE

(25)

Sistemas Distribuídos

Exemplos

Internet

Serviços: www, ftp, e-mail, chat

Intranet

Compartilhamento de recursos e informações

Computação móvel

(26)

Sistemas Distribuídos

Exemplos

Caixa eletrônico

Banco na Internet

Reserva e venda de passagens

Comércio eletrônico

Sistema de Matrícula

Etc...

(27)

Sistemas Distribuídos

Classes de Sistemas Distribuídos

Aplicações inerentemente distribuídas

Correio eletrônico (SMTP)

WWW (HTTP)

Teleconferência

Programas para manutenção de redes: roteamento,

gerenciamento... (RIP, BGP, SNMP)

Sistemas operacionais distribuídos

Jogos

(28)

Sistemas Distribuídos

Classes de Sistemas Distribuídos

Aplicações distribuídas para aumento de

desempenho

Cluster

Grid

Aplicações tolerantes a falhas

e-mail (SMTP)

(29)

Sistemas Distribuídos

Cluster x Grid

Cluster computing

Homogeneidade

Imagem de um sistema únicoGestão centralizada

Usado para computação de alto desempenho e alta disponibilidade

Grid Computing

Alto grau de heterogeneidade Gestão distribuída

Não há uma imagem única do sistema

(30)

Sistemas Distribuídos

Cluster

(31)

Sistemas Distribuídos

Grid

“Um tipo de sistema paralelo e distribuído que permite

compartilhamento, seleção, e agregação de recursos

autônomos geograficamente distribuído, dinamicamente em

tempo de execução, dependendo de sua disponibilidade,

capacidade, desempenho, custo, e requisitos de qualidade

de serviço” [Buyya].

(32)

Sistemas Distribuídos

(33)

Sistemas Distribuídos

Modelo Cliente / Servidor

Servidor (passivo)

Oferece e executa serviços para os Clientes

Responde aos pedidos dos clientes (processamento

específico)

Cliente (ativo)

Submete pedidos ao Servidor

(34)

Sistemas Distribuídos

Modelo Cliente / Servidor

Características

Interação é sempre iniciada pelo Cliente.

Um Servidor pode ser Cliente de outro Servidor

Um servidor Web é frequentemente cliente de um servidor de arquivos que gerencia os arquivos nos quais páginas Web são armazenadas.

Servidores Web e a maioria dos serviços Internet são clientes do serviço DNS (responsável pela tradução de nomes de domínio em endereços de rede).

(35)

Sistemas Distribuídos

Código Móvel e Applets Java (variação do Client/Server)

Os Applets convencionais possuem restrições de segurança, impedindo que estas possam:

Ler e escrever no sistema de arquivos do cliente

Estabelecer conexões em rede, exceto para o servidor hospedeiroIniciar outros programas no sistema do cliente

Carregar bibliotecas ou definir chamadas a métodos nativos.

• Estas restrições podem ser eliminadas para Applets

assinados e transmitidos de forma segura.

(36)

36

Sistemas Distribuídos

Modelo Cliente / Servidor

Duas camadas

(37)

Sistemas Paralelos e Distribuídos 37

Sistemas Distribuídos

Modelo Cliente / Servidor

Multicamadas Vertical

(38)

Sistemas Paralelos e Distribuídos 38

Sistemas Distribuídos

Modelo Cliente / Servidor

Multicamadas Vertical

(39)

Sistemas Distribuídos

Modelo Objetos Distribuídos

Sem distinção entre cliente e servidor

Conjunto de objetos que interagem independente da

localização

Permite adicionar novos recursos quando necessário

Alta escalabilidade (várias instâncias de um mesmo

objeto em diferentes pontos da rede)

Reconfiguração dinâmica

(40)

Sistemas Distribuídos

Modelo Objetos Distribuídos

Middleware para comunicação

Permite a comunicação entre objetos heterogêneos

Middleware para componentes

Fornecem uma base para desenvolvimento de componentes compatíveis

(41)

Sistemas Distribuídos

Modelo P2P (Ponto a Ponto)

Sistemas descentralizados com processamento em qualquer nó da rede

Distribui processamento e armazenamento pela redeSistemas pessoais e pouco utilizados para negóciosArquitetura descentralizadas ou semi-centralizadaExemplos: eMule, Kazaa, eDonkey, Gnutella, etc...

Vantagens

Escalabilidade

Tolerância a falhas

Desvantagem

(42)

Sistemas Distribuídos

Modelo Orientadas a Serviços

Baseada no consumo de serviços externos

Web Service é uma abordagem tecnológica para

implementar essa arquitetura

O fornecimento de serviços não depende da aplicação

que consome o serviço

(43)

Sistemas Distribuídos

Vantagens

Compartilhamento de recursos

Hardware (discos, impressoras, etc.)

Software (arquivos, compiladores, objetos, etc.)

Sistemas abertos

Projetos baseados em protocolos-padrão

Suportam a concorrência entre processos

Boa relação custo/desempenho

(44)

Sistemas Distribuídos

Vantagens

Maior velocidade

Maior confiabilidade e disponibilidade

Facilidade de expansão (escalabilidade)

Adição de novos recursos

Suporte ao aumento da demanda

Tolerância a falhas

Redundância de hardware e software

(45)

Sistemas Distribuídos

Desvantagens

Maior complexidade

DesenvolvimentoTestes

Problemas de Segurança

Integridade de dados na redeInterceptação de dados na rede

Alto custo de implementação

Profissionais especializados

(46)

Sistemas Distribuídos

Desvantagens

Maior complexidade de gerência

Heterogeneidade de hardware

Heterogeneidade de sistemas operacionaisPropagação de defeitos

Maior dificuldade para diagnosticar problemas

Imprevisibilidade

Variação de desempenho de uma requisição para outraUm servidor parou ou está apenas lento?

(47)

49

Referências

Documentos relacionados

O produto a ser ofertado pela MultiFit Gourmet será um tipo de alimentação voltada para pessoas que fazem musculação, que precisam se alimentar de maneira

Pelos resultados do teste de Tukey (P<0,05), apresentados na Tabela 1, observa-se que a testemunha e as linhagens SV07-060 e SV07-032 apresentaram os maiores

O Instituto Sócrates Guanaes, a partir do dia 14 de abril de 2014, iniciou suas atividades de gestão no Hospital Estadual Azevedo Lima, porém apenas esse mês iniciou-se a

A Tabela 6 identifica as categorias de CI mais empregadas nos estudos investigados. Percebe-se que as categorias empregadas referem-se a categorias que mesclam a

A gramínea Brachiaria decumbens Stapf tem sido largamente plantada no território nacional por causa da sua excelente adaptação aos solos de baixa fertilidade, sendo,

A apixaba- na reduziu o risco de AVE e embolismo sistêmico em mais de 50%: houve 51 eventos entre os pacientes do grupo apixabana versus 113 no grupo do AAS

Nosso estudo visa à descrição de uma série de 194 pacientes com fraturas faciais, avaliando a epidemiologia dos pacientes acometidos por essas fraturas, as

Tendo em vista todo contexto positivo que as aulas práticas laboratoriais causam no processo de aprendizagem e das muitas dificuldades encontradas para suas