Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014....

Preview:

Citation preview

Sistemas DistribuídosSistemas Distribuídos

ComputaçãoComputação

Aula 01-02: IntroduçãoAula 01-02: Introdução

2o. Semestre / 2014

Prof. Jesus

2

Agenda da ApresentaçãoAgenda da Apresentação

● Definição e surgimento de Sistemas Distribuídos

● Principais aspectos de Sistemas Distribuídos (Exemplos)

● Motivação e principais problemas● Transparência de distribuição● Aplicações

Definição de Sistemas DistribuídosDefinição de Sistemas Distribuídos

● “Um sistema distribuído (SD) é um conjunto de computadores

independentes que se apresenta a seus usuários como um

sistema único e coerente” (Tanenbaum)

● “Um sistema em que componentes de hardware e software

localizados em uma rede se comunicam e

coordenam suas ações por passagem de mensagens”

(Coulouris et al.)

Surgimento dos Sistemas DistribuídosSurgimento dos Sistemas Distribuídos

● Evolução tecnológica e expansão da utilização e interligação das redes de computadores

● Componentes de uma rede podem se comunicar com maior integração (qualidade de serviço)

● Emular o comportamento de ambientes centralizados

5

Principais aspectos dos Sistemas Principais aspectos dos Sistemas DistribuídosDistribuídos

– Infra-estrutura para:● aplicações● serviços

– Estrutura física● múltiplos computadores conectados em rede

– Concorrência– Sem memória compartilhada

● sistema fracamente acoplado

– Sem relógio global– Falhas isoladas e independentes– Comunicação através de passagem mensagens

● tipicamente assíncronas

6

Exemplos de Sistemas DistribuídosExemplos de Sistemas Distribuídos

● Internet

● Intranet (uma rede dentro da Internet gerenciada por alguma organização)

● Computação móvel e ubíqua.

7

InternetInternet

intranet

ISP

desktop computer:

backbone

satellite link

server:

network link:

Fonte: CDK4

8

InternetInternet

● Programas interagem através de mensagens

● Pode ser ampliado com novos servidores ou tipos de serviços

● Possui backbonesbackbones que são redes com alta capacidade de transmissão

9

IntranetIntranet

the rest of

email server

Web server

Desktopcomputers

File server

router/firewall

print and other servers

other servers

print

Local areanetwork

email server

the Internet

Fonte: CDK4

10

IntranetIntranet

● Porção da Internet administrada separadamente por uma organização e com políticas de segurança locais

● Pode ser composta por uma ou mais LANs

● Uma intranet geralmente é conectada à Internet através de um roteador

11

IntranetIntranet

● Usuários (de outras intranets) acessar seus serviços

● Estas intranets precisam possuir políticas de segurança

● Proteger informações confidenciais

● Usam firewall para filtrar a entrada e saída de informações

12

IntranetIntranet

● Firewall podem impedir acessos legítimos

● Devem ser complementados com mecanismos de segurança mais refinados

● Existem casos em que as organizações não desejam que suas intranets não se conectem à Internet

– Organizações militares em época de guerra, agências de segurança, etc.

13

Computação móvel e ubíquaComputação móvel e ubíqua

● Móvel: dispositivos (smartphones, laptops, GPS) que utilizam conexões de rede sem fio que permite ao usuário acesso a serviços independente de sua localização física

● Ubíqua: existe sem a percepção da existência dela pois o computador está integrado ao ambiente. Ex.: sensores, eletrodomésticos inteligentes.

14

Computação Móvel e UbíquaComputação Móvel e Ubíqua

15

MotivaçãoMotivação

● Compartilhamento de recursos– Ex.: hardware, software, dados, serviços, etc.

● Elevada disponibilidade de serviço– Gerenciamento de recursos através de uma interface bem

definida

● Extensibilidade● Desempenho ● Confiabilidade (redundância, falhas parciais)● Suporte a organizações distribuídas

16

Principais problemasPrincipais problemas

● Concorrência● Falhas parciais● Localização● Acesso● Migração● Replicação● Mobilidade● Contexto● Segurança● Larga escala● Heterogeneidade

cliente

17

HeterogeneidadeHeterogeneidade

● Hardware– PCs, servidores, PDAs, smart phones, smart

cards, utilidades domésticas etc● Sistemas operacionais● Linguagens de programação● Tecnologias de rede

– Internet, WAP, Bluetooth– Ethernet, WiFi, WiMAX, ...

● Tecnologias de middleware● Políticas de gerenciamento

18

Exemplo de ambiente heterogêneoExemplo de ambiente heterogêneo

Laptop

Mobile

PrinterCamera

Internet

Host intranet Home intranetWAP

Wireless LAN

phone

gateway

Host site

Fonte: CDK4

19

Heterogeneidade Heterogeneidade

● Middleware– Camada de software que fornece uma forma de ocultar a

heterogeneidade do sistema. Ex.: RMI, CORBA, etc;

– Fornece também um modelo de programação independente de plataforma

● Código móvel e máquina virtual

– O primeiro se refere a um código enviado para outro computador e executado no seu destino. Ex.: Java applets.

– O segundo permite a execução de um código em diferentes tipos de hardware e/ou sistemas operacionais. Ex.: JVM (Máquina Virtual Java)

20

MiddlewareMiddleware

21

AberturaAbertura

● Facilidade de extensão e atualização

– Adição de novos recursos e serviços

– Re-implementação de serviços existentes

• Determina quanto o sistema pode ser estendido

– Extensão de hardware

• Adição de memória, periféricos...

– Extensão de software

• Recursos de software, protocolos, serviços...

• Grau de não interferência quando da inclusão de algo novo

22

AberturaAbertura

● Depende de 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ê Gestor

– Novos 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

23

AberturaAbertura

● Interfaces de sistemas abertos devem ser publicadas

● Devem fornecer um mecanismo de comunicação uniforme para compartilhamento de recursos

● Devem oferecer suporte a diferentes tipos de hardware e software mesmo que sejam de diferentes fornecedores

24

SegurançaSeguranç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, endreço

– 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 – Ataques de negação de serviço

– Segurança para código móvel

25

EscalabilidadeEscalabilidade

● 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ísicos

– Controlar 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ção

– Caching

– Concorrência e paralelismo

26

Tratamento contra falhasTratamento contra 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 parciais

● Algumas falhas podem ser detectadas (usando checksums em arquivos) e outras não (falha em um servidor)

● 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

27

Tratamento contra falhasTratamento contra falhas

● Técnicas de tratamento de falhas mais comuns:

– Detecção (ex. bits de paridade, checksums)

– Ocultamento (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)

28

ConcorrênciaConcorrê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 (ex.: 2 PCs)

29

Transparências de distribuiçãoTransparências de distribuição

● Um SD deve se apresentar a usuários e aplicações como um sistema único (TRANSPARENTE)

● Tornar invisíveis as complicações geradas pela distribuição:

– para o programador de aplicações distribuídas

– para o usuário

– para o administrador do sistema

● Principais tipos de transparência

– acesso, localização, falha, migração, relocação, replicação, persistência, transação, concorrência

30

Principais transparências de distribuiçãoPrincipais transparências de distribuição

● 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 pelos usuários e programadores

Baseado em: CDK4

31

Principais transparências de distribuiçãoPrincipais transparências de distribuição

● 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

32

Principais transparências de distribuiçãoPrincipais transparências de distribuição

● 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

– Também conhecidas como transparência de rede

33

Principais transparências de distribuiçãoPrincipais transparências de distribuição

● 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

● Classificação quanto à dificuldade de implementação (hierarquia de dependência) e nível (usuário ou programador)

34

Principais transparências de distribuiçãoPrincipais transparências de distribuição

● Níveis de transparência:

– 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)

35

Consórcio para integração de aplicaçõesConsórcio para integração de aplicações

• Consórcio que reúne cerca de 800 empresas envolvidas com tecnologia de objetos

–fabricantes de middleware e aplicações –instituições de pesquisa –usuários

• Missão

–“Criar um mercado de software baseado em componentes”

• Ênfase:

–Re-uso de componentes –Interoperabilidade e portabilidade de componentes –Desenvolvimento de componentes padronizados

36

AplicaçõesAplicações

● Em princípio, qualquer aplicação convencional pode ser portada com sucesso para um ambiente de sistema distribuído

● Algumas áreas de aplicação emergentes– multimídia distribuída

– espaços ativos

– disseminação de informações

– computação móvel e ubíqua

– computação em grade

– redes de sensores

Recommended