Documente Academic
Documente Profesional
Documente Cultură
Sistema no qual os componentes de Hardware ou Software, localizados em computadores interligados em rede, se comunicam e coordenam suas aes apenas enviando mensagens entre si. (Coulouris et all, 2007).
Na Figura tm-se quatro computadores em rede e trs aplicaes, das quais a aplicao B distribuda para os computadores 2 e 3.
Compartilhamento de recursos
Capacidade de processamento Memria Armazenamento Banda de rede / acesso Disponibilidade Dispositivos (impressoras, monitores) Bateria
Independncia a falhas,
Os SDs devem ser especialmente construdos para tolerar falhas, uma vez que elas sofrem de problemas especiais, como: queda de comunicao e a consequente isolao entre os computadores, mesmo assim, os sistemas SDs devem providenciar que as outras mquinas continuem funcionando. 11
12
13
Servios
O termo servio usado para distinguir parte de um sistema de computador que gerencia uma coleo de recursos relacionados e apresenta suas funcionalidades para usurios e aplicativos. Exemplos:
Servidor de Arquivos, por exemplo para oferece um meio para troca de arquivos (ex: FTP); Servidor de Impresso, para oferecer servios gerenciador de impresso de documentos;
14
Servios
Os recursos em um sistema distribudos so fisicamente encapsulados em um computador onde podem ser acessados de outros computadores atravs da comunicao em rede.
Normalmente existe um esquema de interface para providenciar os recursos de forma confivel e consistente.
O nome Servidor o termo mais conhecido para um sistema de software providenciar um esquema definido de acesso aos recursos em sistemas distribudos.
15
Servidor
caracterizado por ser um processo que responde a uma solicitao de um processo cliente.
Normalmente o processo cliente um outro computador que est se comunicando atravs da rede.
A interao entre cliente e o servidor, deste a solicitao at o envio da mensagem por parte do servidor, chamado de Solicitao Remota
16
Processo Cliente:
um processo ativo; funcionam apenas quando so solicitados pelos usurios ou aplicativos.
17
Acesso a recursos
A principal meta de uma sistema distribudo facilitar aos usurios, e s aplicaes, o acesso a recursos remotos e seu compartilhamento de maneira controlada e eficiente; Os principais recursos compartilhados so:
Impressoras, computadores, dados, Hds etc. Arquivos, banco de dados etc.
19
Transparncia da distribuio
Uma meta importante de um sistema distribudo ocultar o fato de que seus processos e recursos esto fisicamente distribudos por vrios computadores; Conceito de transparncia:
definida como a capacidade de ocultar do usurio e do programador de aplicativos, da separao dos componentes em um sistema distribudo de modo que ele seja percebido como um todo, e no como um conjunto de componentes independentes.
20
Localizao;
Migrao; Relocao; Replicao; Concorrncia; Falhas;
21
Transparncia da distribuio
Acesso
Oculta diferenas em representao de dados por mquinas e sistemas operacionais diferentes; Recursos locais e remotos so acessados com usos de operaes idnticas.
Exemplos:
Interface grfica de SO p/arquivos locais ou remotos Interface de programao p/acesso de arquivos locais ou remotos
22
Localizao;
Migrao;
Relocao;
Replicao;
Concorrncia;
Falhas;
23
Transparncia da distribuio
Localizao
O nome do recurso deve ser independente de sua localizao fsica; Nomes lgicos (URL) identificam o nome do servidor web em um domnio (www.terra.com.br) e no o seu endereo IP.
24
Localizao;
Migrao;
Relocao;
Replicao;
Concorrncia;
Falhas;
25
26
Cdigos mveis
O termo usado para fazer referncia a cdigos que podem ser enviados de um computador para outro, para serem executados no destino.
Ex: Applets Java
O cdigo Java pode ser executado virtualmente em qualquer mquina atravs da implementao de uma mquina virtual (Java Virtual Machine JVM) no Computador hospedeiro.
27
Localizao;
Migrao;
Relocao;
Replicao;
Concorrncia;
Falhas.
28
Transparncia da distribuio
Relocao
Oculta que um recurso (exemplo: notebook) possa ser movido para outra localizao durante o uso; Quando um usurio mvel? Um notebook se movimentando dentro da mesma rea de cobertura (no mvel); Um automvel passando por vrias redes de acesso sem fio, com conexo ininterrupta (mvel).
29
Localizao;
Migrao;
Relocao;
Replicao;
Concorrncia;
Falhas;
30
31
Localizao;
Migrao;
Relocao;
Replicao;
Concorrncia;
Falhas;
32
Transparncia da distribuio
Concorrncia
Coordenar acessos a recursos compartilhados Ordenao de eventos: todos usurios tem uma mesma viso do sistema Garantir excluso mtua Evitar postergao indefinida Evitar deadlocks
33
Concorrncia
Os servios e as aplicaes fornecem recursos que podem ser compartilhados pelos clientes nos Sistemas Distribudos. Isto pode ser um problema se um determinado recurso for requisitado ao mesmo tempo por vrios usurios. Exemplo: acesso a BD, paginas de Internet, etc.
34
Concorrncia
O principal problema a ocorrncia de conflitos que podem gerar inconsistncias em ambientes concorrentes. Um exemplo a ao de armazenamento de dados.
Uma primeira ao pode pedir ao BD para armazenar Smith R$ 1200,00, e logo em seguida, um outro processo pode solicitar para o mesmo registro de uma tabela de um banco de dados gravar Jones R$ 5000,00.
Neste exemplo, o processo de concorrncia do SGBD poder intercalar o acesso ao BD, misturando as informaes.
35
Localizao;
Migrao;
Relocao;
Replicao;
Concorrncia;
Falhas;
36
Transparncia da distribuio
Falha:
Tolerar , detectar e recuperar falhas
37
38
Transparncia de Localizao.
a capacidade de permitir acesso aos recursos sem o conhecimento da localizao da mesma. Exemplo: a tcnica usada no URL;
Transparncia de Concorrncia.
capacidade de permitir acesso aos recursos compartilhados de forma concorrente para vrios usurios, sem que haja interferncia entre eles. Ex: Web Server, ftp e BD;
39
Transparncia Falhas.
a capacidade de encobrir as falhas ocorridas, mas permitindo que usurios e/ou aplicaes completem suas tarefas a despeito das falhas ocorridas de hardware ou de software. Exemplo: E-mail;
40
Transparncia de Desempenho.
a capacidade de permitir que os SDs possam ser reconfigurados para providenciar desempenho mesmo com cargas variveis. Exemplo: a Web;
Transparncia de Escala.
a capacidade de permitir que o sistema cresa sem alterar a estrutura ou os algoritmos do sistema. Exemplo: Internet, Intranet.
41
Sistemas abertos
Um sistema computacional aberto quando ele pode ser estendido e reimplementado de vrias maneiras;
A especificao e a documentao das principais interfaces de software dos componentes de um sistema devem estar disponveis para os desenvolvedores de software; Os sistemas distribudos abertos podem ser construdos a partir de hardware e software heterogneo, possivelmente de diferentes fornecedores.
Mas os componentes e as tcnicas necessrias para permitir a conformidade entre os diversos hardwares e softwares devem ser cuidadosamente testados.
42
43
Escalabilidade
Todo Sistema Distribudo deve operar efetivamente eficientemente em vrias e diferentes ESCALAS. e
Um sistema descrito como escalvel se permanece eficiente quando h um aumento significativo no nmero de recursos e no nmero de usurios.
A internet um exemplo de sistema distribudo no qual o nmero de computadores e servios vem aumentando substancialmente.
44
Escalabilidade
45
46
Algoritmos Centralizados: Em um SD de grande porte, uma quantidade enorme de mensagens deve ser roteada por muitos enlaces; Necessrio obter informaes completas sobre a carga em todas as mquinas e enlaces e ento executar um algoritmo para computar todas as rotas timas; Problemas:
obter e transportar todas as informaes pode sobrecarregar parte da rede. Informaes desatualizadas (ou incompletas) sobre a carga de trfego nos enlaces da rede. 47
Escalabilidade
Algoritmos descentralizados
Nenhuma mquina tem informaes completas sobre o estado do sistema As mquinas tomam decises tendo como base somente informaes locais A falha de uma mquina no arruna o algoritmo No h a premissa implcita quanto a existncia de um relgio global
As redes de longa distancia so inerentemente no confiveis. Localizao de recursos em redes de longa distancia:
Em uma LAN, um processo pode simplesmente enviar uma mensagem broadcast a todas as mquinas da rede, perguntando a cada uma delas se est executando o servio que ele necessita. Somente as mquinas que tm aquele servio respondem; Tal esquema inconcebvel em redes de longa distancia. necessrio projetar servios especiais de localizao.
50
51
52
53
Tcnicas de Escalabilidade
Ocultar latncias de comunicao Distribuio Replicao / Cache
54
55
Contudo, existem muitas aplicaes que no podem fazer uso de efetivo de comunicao assncrona.
Exemplo: aplicaes interativas
56
Exemplo 2: uma soluo melhor despachar para o cliente o cdigo para preencher o formulrio e verificar as entradas, alm de fazer com que o cliente devolva um formulrio completo para o servidor. 57
Tcnicas de Escalabilidade
Ocultar latncias de comunicao Distribuio Replicao / Cache
58
A distribuio envolve tomar um componente, sub-dividi-lo em partes menores e, na sequncia, espalhar essas partes pelo sistema. Exemplo: Sistema de Nomes de Domnio da Internet (DNS) para retornar um endereo de rede
nl.vu.cs.flits O espao de nomes do DNS organizado por hierarquia em uma arvore de domnios , dividida em zonas sem sobreposio. Os nomes em cada zona so manipulados por um nico servidor de nomes.
59
Tcnicas de Escalabilidade
Ocultar latncias de comunicao Distribuio Replicao / Cache
60
O Cache uma forma especial de replicao Como no caso da replicao, a Cache resulta em fazer uma cpia de um recurso, em geral na proximidade do acesso do cliente quele recurso. Ao contrrio da Replicao, a Cache uma deciso tomada pelo cliente de um recurso e no pelo seu proprietrio. Alm disso, a Cache acontece sob demanda, ao passo que a Replicao costuma ser planejada antecipadamente
Desvantagem: Consistncia.
61
Ciladas da Escalabilidade
Premissas falsas adotadas ao se desenvolver pela primeira vez uma aplicao distribuda: 1. Rede confivel 2. Rede segura 3. Rede homognea 4. Topologia constante 5. Latncia zero 6. Largura de banda infinita 7. Custo de Transporte zero 8. Existe somente um administrador
Confiabilidade
Tolerar falhas
Habilidade do sistema continuar operacional mesmo na presena de falhas (redundncia e controle distribudo)
63
Tolerncia Falhas
Em um Sistema Distribudo, quando uma falha acontece, somente aquele componente deve parar, enquanto que os outros componentes do sistema devem continuar funcionando.
64
Ocultao de falhas,
est tcnica permite que o sistema corrija a falha escondendo a sua ocorrncia, por exemplo, do usurio. Exemplos: retransmisso de mensagens, dados de arquivos pode ser escritos em dois discos diferentes, etc.
65
Recuperao de Falhas.
Dependendo do software, um projeto adequado permite que um sistema possa recuperar um estado consistente de dados at o momento antes da falha. Exemplo: Rolled back usado em BDs;
Redundncia.
Os sistemas podem tambm oferecer componentes redundantes para evitar falhas. Exemplo: BDs com replicao de dados, Servidores de DNS e Roteadores.
66
Flexibilidade
Capacidade de modificao e incluso Correo/manuteno do sistema sem interrupo do servio Incluso de novas funcionalidades e recursos (integrao de componentes)
67
Desempenho
Objetivo: transformar o desempenho do SD to bom quanto, ou mesmo superior, a de um sistema centralizado
Tcnicas bsicas
Uso da cache Minimizar a necessidade de transferncia de dados e sincronizao Explorar uso de paralelismo de alta granularidade (threads, concorrncia etc.)
68
Heterogeneidade
A Internet o maior exemplo de rede que oferece servio de acesso atravs de vrias redes fsicas heterogneas.
A Internet permite que diferentes recursos sejam utilizados com o objetivo de providenciar uma comunicao transparente. Os diferentes recursos podem ser:
as rede; os hardwares; os sistemas operacionais; as linguagens de programao; as diferentes implementaes.
69
Heterogeneidade
Hoje, a internet consegue mascarar as diferentes redes existentes no mundo. Esta possibilidade ocorre em funo de que todos os computadores ligados a internet utilizam protocolos de Internet para se comunicar; Exemplo:
um computador com placa Ethernet tem uma implementao dos protocolos Internet diferente de um outro utilizando um outro tipo de placa para esta mesma rede.
70
Heterogeneidade
Dependendo do hardware utilizado, um nmero inteiro pode ter diferentes formatos e tamanhos.
Isto, por exemplo, pode dificultar a interpretao correta de um nmero em um hardware diferente.
71
Heterogeneidade
O Sistema Operacional oferece em seus cdigos servios de Internet que podem deixar disponveis para os seus aplicativos,
porm dependendo do sistema operacional utilizado, as chamadas para as APIs, podem ser diferentes de um S.O. para outro.
72
Heterogeneidade
Dependendo da ferramenta de programao que estiver sendo utilizada, diferentes formatos de dados podem ser utilizados para representar caracteres e estruturas de dados. Isto pode dificultar a interao de uma aplicao com uma outra desenvolvida em linguagem de programao diferente.
Ex: C, Pascal, Basic, Java, Assembler, etc.
73
Middleware
O termo Middleware aplicado para uma camada de software que tem o objetivo de providenciar uma abstrao de programao atravs do ocultao das diferenas (heterogeneidade) existentes nos ambientes de rede, hardware, Sistemas Operacionais e linguagens de programao. A camada de Middleware concentra servios como identificao, autenticao, autorizao, diretrios, certificados digitais e outras ferramentas para segurana.
74
Middleware
Tecnologias de software que ajudam a gerenciar a complexidade e a heterogeneidade inerentes ao desenvolvimento de aplicaes em sistemas distribudos; Os Middlewares resolvem o problema da heterogeneidade oferecendo um modelo computacional uniforme para ser utilizados pelos programadores; Estes modelos simplificam bastante o desenvolvimento de servidores e aplicaes distribudas; Ex:
Remote Object Invocation, Remote Event Notification, Remote SQL Access e Distributed Transaction Processing.
75
Middleware
Middleware: camada de software que se estende por vrias mquinas e oculta das aplicaes as diferenas em hardware e sistemas operacionais
76
Middleware
Sistemas Operacionais
SO gerencia recursos fsicos subjacentes do computador e oferece abstraes (chamadas de sistema) via interfaces Processadores Memria Comunicao Exemplos de abstraes Arquivos (blocos de disco) Soquetes (acesso direto rede) Tpicos importantes Concorrncia Proteo Escalonamento (preemptivos e no preemptivos)
Middleware
Middleware fornece uma abstrao de um modelo de programao/comunicao Chamada de Procedimento Remota (RPC) Invocao Remota de Mtodos (RMI) So construdos sobre os sistemas operacionais
Segurana
Muitos recursos de informao que se tornam disponveis e so mantidos em Sistemas Distribudos tm um alto valor para os seus usurios.
Portanto, sua segurana muito importante.
Integridade
proteo contra alterao ou dano.
Disponibilidade
proteo contra interferncia com os meios de acesso aos recursos.
79
Segurana
Para desenvolver um Sistema Distribudo existem desafios que devem ser tratados para garantir a segurana e a confiabilidade na execuo de servios oferecidos. Exemplo:
Usurios realizando consultas a sites de bancos para verificarem suas contas bancrias; Compras on-lines realizadas atravs de cartes de crdito.
80
Segurana
Dois desafios que ainda apresentam como problemas no muito bem resolvidos em Sistemas Distribuidos:
Ataque de negao de servio (Denial for Service),
a tcnica utilizado para desativar ou inviabilizar o acesso de dados por parte dos usurios. Ex: Ataques para congestionar um servidor de pginas Web;
Atualmente vrias tcnicas envolvendo criptografias so utilizadas para tentar garantir a segurana em Sistemas Distribudos na Internet.
81
82
Internet
A Internet um conjunto de redes de computadores, de muitos tipos diferentes, interligadas.
% %
ISP
intran et
backbone
83
Internet
No h exemplo maior que a prpria Internet como um exemplo de Sistema Distribudo. A Internet permite que uma imensa quantidade de computadores se comuniquem atravs da troca de mensagens, compartilhando recursos, como impressoras, arquivos e servios de multimdias. A Internet tambm traz algumas dificuldades para os Sistemas Distribudos:
Sistemas que trabalham justamente com servios multimdia enfrentam dificuldades com a limitao de reserva de recursos na Internet.
84
85
Caractersticas da WEB
um sistema aberto, ou seja, pode ser implementado extenses para adicionar novas capacidades ao padro.
Novos browsers podem ser implementados para diversas plataformas, incluindo para dispositivos mveis como celulares e PDAs;
86
Protocols
Activity.html
87
88
HTML
a linguagem usada para especificar o contedo e formato das pginas e como devero ser apresentados nos browsers.
Basicamente definem uma linguagem de marcao informando como um pargrafo, ttulos, cabealhos, tabelas e imagens devem ser apresentados ao usurio.
89
URLs
Tm o propsito de especificar o tipo e a localizao do recurso nos servidores de pginas Web. A URL especifica sempre dois componentes bsicos para uma identificao de recursos:
esquema: identificador-especfico-do-esquema
O primeiro componente, o esquema, declara qual o tipo desse URL.
Exemplos:
mail:joe@anIPS.net; ftp://ftp.download.com/software/free/prog.exe; http://www.download.com/software/free/prog.exe;
Este modelo permite que novos esquemas possam ser criados e adicionados na Web para prestar outros recursos no previstos inicialmente.
90
HTTP URLs
Basicamente faz parte da especificao do protocolo HTTP e usado para localizao de recursos em servidores HTTP. Sua principal tarefa especificar qual servidor e qual o recurso especfico dentro daquele servidor.
As pginas Web normalmente so guardadas em subdiretrios dentro dos servidores.
consulta (nenhuma)
Fragmento (nenhum)
http://www.w3.org/Protocols/Activity.htm#intro
http://www.google.com/search?q=kindberg
Protocols/Activity.html
search
(nenhuma)
q=kindberg
intro
(nenhum)
92
Protocolo HTTP
Define a forma como os browsers e outros tipos de clientes devem interagir com os servidores Web.
93
Content-Type, faz parte do protocolo especificar o tipo de contedo de dados que est sendo transferido para o cliente,
desta forma, o browser tem condies de tratar de forma correta e apresent-lo para o usurio;
Requisio individual de recurso, se um documento HTML tm 9 figuras, ento o browser ir fazer 10 solicitaes ao servidor; Simple Access Control, atravs do protocolo HTTP, extremamente fcil ter acesso a qualquer dado publicado na Internet.
Uma forma de restringir os acessos aos dados solicitar a digitao de senhas antes de mostrar os dados.
94
CGIs, so programas que podem ser executados no servidor Web para executar tarefas especficas como uma consulta a banco de dados.
Normalmente, o retorno desses programas emitindo uma pgina HTML;
95
Applets, So cdigos baseados em Java que so baixados do servidor para serem executados nos browsers.
Tm a vantagem de executar cdigos mais avanados que possibilitam a execuo de aplicaes como chats.
96
Problemas da WEB
Links fantasmas; Falta de padronizao do HTML; Falta de confiabilidade nos dados encontrados na Internet; Problemas de escala; Overhead de recursos nas pginas, muitos applets, gif animados, etc.
97
Intranet
Redes mveis e ubquas
98
Intranets
A Intranet pode ser considerada uma pequena poro da Internet, gerenciada ou administrada separadamente por uma organizao que apresenta requisitos focados em polticas de segurana normalmente rgidas. Uma Intranet pode ser conectada a Internet atravs roteadores, para permitir que seus usurios possam acessar alguns de seus servios, como acesso a pginas da web e emails.
possvel tambm que usurios externos acessem o contedo interno da Intranet conforme o interesse da companhia que o gerncia.
O controle de acesso aos servios normalmente realizado pelos Firewalls, cuja a funo principal filtrar tipos de dados que entram e saem conforme o interesse da organizao.
99
Instructors Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4
101
Computao mvel
Os avanos tecnolgicos na miniaturizao de dispositivos e interligao em rede sem fio tm levado cada vez mais integrao de equipamentos de computao pequenos e portteis com sistemas distribudos. Estes equipamentos incluem:
Laptops; Assistentes digitais pessoais (PDAs); Telefones mveis; Cmaras de vdeo; Dispositivos acoplados ao corpo humano; Dispositivos Embarcados (mquinas de lavar, aparelhos de som, carros, geladeiras, etc).
Caractersticas principais:
Portabilidade e Conectividade.
102
Computao mvel
Exemplos de aplicaes:
Casa; Trabalho; Hospitais; Bibliotecas; etc;
Internet
Host intranet
Wireless LAN
WAP gateway
Home intranet
103
Ao mesmo tempo, estes mesmo dispositivos podem enviar mensagem para seus donos atravs de emails ou pagers para avisar sobre algum evento.
104
Computao Ubqua:
Reconfigurao de acesso; Complexidade na implementao; Privacidade e segurana.
105
106
de
108
N mestre (middleware)
Aloca ns de computao a um determinado programa paralelo, mantm uma fila de jobs e gerencia o cluster
Sistema Linux padro Renderizao de filmes em 3D, aplicaes cientficas
N de computao
Exemplos de aplicao
109
Alm disso, a camada de conectividade conter protocolos de segurana para autenticar usurios e recursos.
Transaes so servios que tm como objetivo permitir integridade dos dados e consistncia
O Programador v sua transao como um programa seqencial, mesmo que ele possa executar concorrentemente com outros programas ou que ocorra falhas durante sua execuo
Isoladas: Transaes concorrentes no interferem entre si. (Serializveis) Durveis: Uma vez comprometida uma transao, as alteraes sero permanentes.
Transaes Distribudas
Uma transao dita distribuda quando mltiplos servidores esto envolvidos tanto pela requisio direta do cliente quanto indiretamente via servidor Cada transao distribuda pode ser construda de duas formas diferentes:
transao distribuda simples transao distribuda aninhada
O cliente requisita uma transao ao servidor que por sua vez invoca outros servidores e assim sucessivamente...
Exemplo: Uma transao para o planejamento de uma viagem pela qual preciso reservar trs voos pode ser subdividida logicamente em at trs subransaes. Cada uma dessas subtransaes pode ser gerenciada em separado e independentemente das outras duas.
Melhor desempenho...
T = openTransaction openSubTransaction a.saque(10); openSubTransaction b.saque(20); openSubTransaction c.deposito(10); openSubTransaction d. deposito(20); closeTransaction
a.saque(10)
b.saque(20)
c.deposito(10) d. deposito(20)
Implementao
Como as transaes so implementadas, de modo a garantirem a consistncia?
Dois mtodos so apresentados:
Shadow Versions:
uma cpia dos dados a serem alterados feita. Nessa cpia que as alteraes so efetuadas. Ao fim da transao essa cpia substitui os dados antigos.
administrativo
Exemplos:
Sistemas domsticos Sistemas eletrnicos para tratamento de sade Redes de sensores
N sensor
Referncias
COULOURIS G., DOLLIMORE, J., KINDBERG ,T. Distribuidos: Conceitos e Projetos. Editora Bookman, 2007. Sistemas
TANENBAUM, Andrew S.; STEEN, Van Maarten. Sistemas Distribudos: princpios e paradigmas. Pearson/ Prentice-Hall, 2007.