Você está na página 1de 105

ENG. Srgio Joao Gonalo Email: sgonsalo@hotmail.

com 2012

16-05-2012

Computaao Distribuida - Srgio Gonalo

16-05-2012

Computaao Distribuida - Srgio Gonalo

16-05-2012

Computaao Distribuida - Srgio Gonalo

16-05-2012

Computaao Distribuida - Srgio Gonalo

16-05-2012

Computaao Distribuida - Srgio Gonalo

16-05-2012

Computaao Distribuida - Srgio Gonalo

16-05-2012

Computaao Distribuida - Srgio Gonalo

16-05-2012

Computaao Distribuida - Srgio Gonalo

16-05-2012

Computaao Distribuida - Srgio Gonalo

16-05-2012

Computaao Distribuida - Srgio Gonalo

10

16-05-2012

Computaao Distribuida - Srgio Gonalo

11

16-05-2012

Computaao Distribuida - Srgio Gonalo

12

16-05-2012

Computaao Distribuida - Srgio Gonalo

13

16-05-2012

Computaao Distribuida - Srgio Gonalo

14

16-05-2012

Computaao Distribuida - Srgio Gonalo

15

16-05-2012

Computaao Distribuida - Srgio Gonalo

16

16-05-2012

Computaao Distribuida - Srgio Gonalo

17

16-05-2012

Computaao Distribuida - Srgio Gonalo

18

16-05-2012

Computaao Distribuida - Srgio Gonalo

19

16-05-2012

Computaao Distribuida - Srgio Gonalo

20

Middleware ou mediador
No campo da computao distribuda, um programa de computador que faz a mediao entre software e demais aplicaes. utilizado para mover ou transportar informaes e dados entre programas de diferentes protocolos de comunicao, plataformas e depen dncias do sistema operacional. geralmente constitudo por mdulos dotados com APIs de alto nvel que proporcionam a sua integrao com aplicaes desenvolvidas em diversas linguagens de programao e interfaces de baixo nvel que permitem a sua independncia relativamente ao dispositivo. Seu objetivo mascarar a heterogeneidade e fornecer um modelo de programao mais produtivo para os programadores de aplicativos. composto por um conjunto da processos ou objetos em um grupo de computadores, que interagem entre si de forma a implementar comunicao e oferecer suporte para compartilhamento de recursos e aplicativos distribudos. O Middleware a designao genrica utilizada para referir aos sistemas de software que se executam entre as aplicaes e os sistemas operacionais. O objetivo do middleware facilitar o desenvolvimento de aplicaes, tipicamente as distribudas, assim como facilitar a integrao de sistemas legados ou desenvolvidos de forma no integrada automtica.
16-05-2012 Computaao Distribuida - Srgio Gonalo 21

16-05-2012

Computaao Distribuida - Srgio Gonalo

22

16-05-2012

Computaao Distribuida - Srgio Gonalo

23

16-05-2012

Computaao Distribuida - Srgio Gonalo

24

Sistemas Autonmicos: sistemas computacionais capazes de se auto-gerenciar, dado um conjunto abstrato de objetivos e a definio de polticas;

16-05-2012

Computaao Distribuida - Srgio Gonalo

25

Propriedades da computao autonmica Para um sistema ser de fato autonmico preciso possuir algumas caractersticas essenciais como: O sistema deve possuir um conhecimento de si prprio, ou seja, conhecer seus dispositivos e componentes bem como as condies de seu funcionamento e do funcionamento de outros sistemas. Capacidade de se configurar de acordo com mudanas externas. Estar procura de formas de otimizar o seu trabalho. Capacidade de se restaurar aps eventos que venham a prejudicar o funcionamento do sistema de maneira que os problemas sejam detectados e solues sejam aplicadas para que os mesmos sejam corrigidos. O sistema deve, a todo custo, lanar mo de alternativas de proteo que visem a segurana do sistema. O sistema deve ter um bom conhecimento do ambiente que o cerca e, desta forma, fazer uso de polticas que facilitem a interao com sistemas prximos. O sistema deve funcionar desconsiderando a heterogeneidade da rede, isto , os diferentes dispositivos de diversas plataformas e hardwares devem se comunicar sem obstculos. O sistema deve antecipar e otimizar os recursos sempre que necessrio, ocultando a complexidade da rede e se mantendo transparente ao usurio.
16-05-2012 Computaao Distribuida - Srgio Gonalo 26

16-05-2012

Computaao Distribuida - Srgio Gonalo

27

16-05-2012

Computaao Distribuida - Srgio Gonalo

28

16-05-2012

Computaao Distribuida - Srgio Gonalo

29

Mquinas, Sistemas de Rede e Sistemas Operacionais de diversos fabricantes

Uma das Motivaes do

surgimento do Midleware o ambiente de computao actual em que Mquinas, Sistemas de Rede e Sistemas Operacionais so de diversos fabricantes, conforme ilustra a fig. 2.

Ento surge uma questo: como ultrapassar estas limitaes? Para uma rede formada por diversas plataformas, fig 3

Desafio de integrao de ambientes heterogneos, fig4

Os constrangimentos, colocados nas figuras 2 a 4, podem ser resolvidas com a integrao usando Midleware.(Midleware como soluo para integrao de ambientes heterogneos, fig 5)

Segundo (Rymer 1996), Middleware um software que permite elementos de aplicaes inter operarem atravs de redes, apesar das diferenas nos protocolos de comunicao, arquitecturas de sistemas, sistemas operacionais, bases de dados e outros servios de aplicao.

simplesmente um software de conectividade que consiste de um conjunto de servios que permitem mltiplos processos rodando sobre uma ou mais mquinas, interagirem atravs de uma rede. (Eckerson 1995)

Um middleware deve fazer diversas coisas. Primeiro, ele prov um modo para obter dados de um lugar (..) para outro lugar (..). Segundo, ele deve mascarar as diferenas existentes entre: sistema operativo; plataformas de hardware e protocolos de rede. Terceiro, ele deve ocultar a complexidade do processo de transporte da rede, do desenvolvedor da aplicao. (Salamone 1996) Para cada uma das camadas (apresentao, aplicao e de dados), definiu-se um middleware correspondente. Um exemplo de: Middleware de apresentao o trio: navegador; protocolo HTTP e servidor Web que dividem a responsabilidade da comunicao para mostrar uma pgina atravs da Internet. Middleware de dados , em geral, fornecido pela desenvolvedora do banco de dados e tem como funo fazer as consultas SQL no servidor atravs da rede, retornando o resultado estao cliente. Outro exemplo de middleware de dados so os gateways que gerenciam acessos a diferentes bancos de dados, usando uma API ODBC (Application Programming Interface Open Database Connectivity).

A seguir so apresentadas as categorias de Middleware: Middleware no orientado a objetos: Distributed Computing Environment (DCE) conjunto de servios e ferramentas que executam sobre um sistema operativo existente auxiliando no desenvolvimento de aplicaes distribudas. Message Oriented Middleware (MOM) mtodo de comunicao entre componentes de software utilizado em sistemas distribudos. O MOM um tipo de middleware orientado a mensagem. Um cliente pode enviar e receber mensagens de forma assncrona de qualquer outro cliente, conectados a um agente especial que fornece facilidades para criar, enviar, receber e ler mensagens. Database Middleware providencia uma forma padro de aceder a dados de uma base de dados.

16-05-2012

Computaao Distribuida - Srgio Gonalo

37

16-05-2012

Computaao Distribuida - Srgio Gonalo

38

16-05-2012

Computaao Distribuida - Srgio Gonalo

39

16-05-2012

Computaao Distribuida - Srgio Gonalo

40

Agentes Mveis
Um agente mvel um programa em execuo (incluindo dados e cdigo) que viajam de um computador para outro numa rede. Um agente mvel pode invocar recursos locais em cada site que visita por exemplo aceder bases de dados individuais. Comparando esta arquitectura com um cliente esttico fazendo requisies remotas a alguns recursos, possivelmente transferindo grandes quantidades de dados, existe uma reduo de custos e tempo na comunicao atravs da troca de requisies remotas em locais.

Agentes mveis (como cdigo mvel) so potenciais ameaas para os recursos do computador que acedem. O ambiente que recebe um agente mvel deve decidir, que recursos locais so permitidos para o agente, baseados na identidade do usurio com quem o agente est interagindo a identidade deve ser includo duma forma segura com o cdigo e os dados do agente mvel. Adicionalmente, agentes mveis podem eles prprios ser vulnerveis eles podem no completar a tarefa se forem recusados a aceder a informao que eles precisam. Por exemplo, Web crawlers que precisam aceder recursos num servidor Web atravs da Internet que funcionam correctamente
16-05-2012 Computaao Distribuida - Srgio Gonalo 41

Servios podem ser implementados como mltiplos processos de servidores em computadores diferentes, interagindo quando necessrio para providenciar servios a processos clientes (vide fig. abaixo). Os servidores podem particionar um conjunto de objectos, nos quais os servios esto baseados e distribu-los pelos diferentes servidores, ou eles podem manter cpias replicadas desses objectos em cada um dos servidores. Estas duas opes esto ilustradas nos seguintes exemplos.

16-05-2012

Computaao Distribuida - Srgio Gonalo

42

A Web providencia um exemplo comum de particionamento de dados, em que cada servidor Web gere cada um dos seus recursos. Um usurio pode utilizar o browser para aceder recursos de qualquer um dos servidores. A replicao usada para aumentar a desempenho, disponibilidade e minimizar a tolerncia a falhas. Por exemplo, o Web service providenciado no site mapeado em vrios servidores que tm as bases de dados replicadas. Um outros exemplo de um servio baseado na replicao de dados NIS (Network Information Service) da Sun, que usado pelos computadores uma LAN quando os usurios fazem o log on. Cada servidor NIS possui uma rplica prpria dos usernames e passwords encriptadas.

16-05-2012

Computaao Distribuida - Srgio Gonalo

43

Servidores proxies e caches

Cache rea de armazenamento temporrio onde se guarda objectos recentemente usados que esto mais perto que os prprios objectos. Quando um novo objecto recebido num computador adicionado ao cache, sobrepondo alguns objectos se for necessrio. Quando objecto requisitado por um processo cliente, os servios cache verificam primeiro o cache e providenciam o objecto a partir da, se uma cpia recente desse objecto estiver disponvel. Caso contrrio, uma cpia recente do objecto solicitada. Caches podem ser colocados com cada cliente ou podem ser localizados num servidor proxy que pode ser partilhado por diversos clientes. Caches so usados extensivamente na prtica. Navegadores Web mantm um cache de pgina Web visitadas recentemente e outros recursos da Web no computador cliente, usando uma requisio especial http para verificar se a pgina recente no servidor cache original, antes de mostr-la ao cliente.

16-05-2012

Computaao Distribuida - Srgio Gonalo

44

Servidores Web proxies (vide fig. abaixo) providencia um cache partilhado de recursos Web para mquinas clientes num site ou para vrios sites. O propsito de servidores proxies aumentar a disponibilidade e a desempenho do servio diminuindo o trfego na rede e carga de processamento nos servidores Web. Servidores proxy podem assumir outras funes, como por exemplo, serem usados para aceder remotamente um servidor Web por meio de um firewall.

16-05-2012

Computaao Distribuida - Srgio Gonalo

45

Modelo P2P (Peer to Peer)


Nesta arquitectura, todos processos desempenham funes semelhantes, interagindo cooperativamente para realizar uma actividade distribuda ou computao sem nenhuma distino entre clientes e servidores. Neste modelo, o cdigo dos processos peer mantm os recursos do nvel aplicacional consistentes e os sincroniza, quando necessrio. A fig. acima (Um servio providenciado por mltiplos servidores) mostra trs computadores com a configurao deste modelo; Em geral n processos peer podem interagir uns com os outros e o padro de comunicao depende dos requisitos da aplicao.

16-05-2012

Computaao Distribuida - Srgio Gonalo

46

A eliminao de processos servidores reduz atrasos de comunicao entre os processos para aceder objectos locais.

Variaes do modelo Cliente Servidor


Diversas variaes neste modelo podem ser derivados da considerao dos seguintes factores: O uso de cdigo mvel em agentes mveis; Necessidades de usurio em uso de computadores de baixo custo com recursos de hardware limitados que so simples de gerir. Os requisitos de adicionar e remover dispositivos mveis duma forma conveniente.

16-05-2012

Computaao Distribuida - Srgio Gonalo

47

Cdigo Mvel
Applets so bem conhecidos e largamente usados como exemplo de cdigo mvel o caso de o utilizador de um navegador Web seleccionar um link para Applet cujo cdigo esta num servidor Web; o cdigo descarregado para o navegador e executado no mesmo, como mostrado na fig. abaixo. A vantagem de executar o cdigo descarregado localmente, que pode boas respostas interactivas, pois no sofre atrasos nem variabilidade da largura de banda associado com as comunicaes.

16-05-2012

Computaao Distribuida - Srgio Gonalo

48

Acedendo servios significa executar cdigo que pode invocar outras operaes. Alguns servios j esto estandardizados que podem ser acedidos com aplicaes bem conhecidas a Web o exemplo mais comum, mas mesmo na Web existem alguns sites usam funcionalidades no encontradas em navegadores Web, que requerem cdigo adicional. O cdigo adicional pode, por exemplo, comunicar com o servidor. Considerando uma aplicao que requere que o usurios tenham informao actualizada medida que vo ocorrendo alteraes no servidor. Isto no pode ser alcanado com uma interaco normal com o servidor Web, que sempre iniciada pelo cliente.

16-05-2012

Computaao Distribuida - Srgio Gonalo

49

fazendo requisies remotas a processos servidores. Por esta razo, a aplicao de agentes mveis pode ser limitada.

Computadores em rede
Numa arquitectura stand-alone (computadores no interligados entre si) as aplicaes correm em computadores locais. Nestes casos, o sistema operativo e a aplicao requerem que o cdigo e os dados sejam colocados no disco local. Mas a manuteno dos dados e da aplicao local, requere um esforo tcnico adicional. Os computadores em rede a resposta para este problema. As aplicaes so corridas localmente, mas ficheiros ou dados so geridos por um servidor remoto de ficheiros.Dado que todos dados da aplicao e o cdigo esto guardados num servidor Web, os usurios podem migrar de um computador de rede para outro.

16-05-2012

Computaao Distribuida - Srgio Gonalo

50

Nestes casos os computadores da rede s precisam ter requisitos mnimos de hardware, podendo reduzir os custos. Se tiver um disco, este pode ser usado como memria cache armazenando cpias de software e dados recentemente descarregados do servidor. A manuteno da memria cache no requere nenhum esforo manual: objectos cache so invalidados a qualquer momento que uma nova verso do ficheiro escrita no servidor.

16-05-2012

Computaao Distribuida - Srgio Gonalo

51

Thin Clients (Clientes Leves)


O termo Thin Client refere-se a uma camada de software que suporta interfaces do usurio baseado em janelas num computador local, para o utilizador executando aplicaes num computador remoto. Esta arquitectura possui tambm baixo custo de gesto e de hardware, a semelhana de arquitectura de computadores em rede. Pois ao invs de descarregar o cdigo das aplicaes no computador local, tudo ocorre no computador servidor. Que tem uma grande capacidade de executar uma quantidade significativa de aplicaes simultaneamente. A principal desvantagem de uma aplicao thin client alta actividade de interaco grfica, o que resulta em maior tempo de atraso no processamento da imagem. Por exemplo, VNC (Virtual network computer), Remote Desktop Connection (RDC),

16-05-2012

Computaao Distribuida - Srgio Gonalo

52

Dispositivos mveis e rede espontnea


O mundo est gradualmente a ser povoado por pequenos dispositivos mveis e portteis, incluindo laptops, dispositivos de mo, tais como PDAs (Personal Digital Assistants), telemveis, cmaras digitais, relgios smarts, Muitos desses dispositivos tem capacidades de serem integrados em redes sem fio. Com apropriada integrao em sistemas distribudos, estes dispositivos providenciam suporte a computao mvel. Onde os utilizadores, utilizam seus dispositivos moveis em diferentes redes e tiram vantagens dos servios locais e remotos. A forma de distribuio que integra dispositivos mveis, e outros dispositivos em uma rede talvez a melhor descrio de rede espontnea. Num hotel um exemplo de uma rede espontnea em que os clientes podem ter servios de msica, alarme e acesso a Internet.

16-05-2012

Computaao Distribuida - Srgio Gonalo

53

Os pontos chaves de uma rede espontnea so:

Facilidade de conexo a rede local Redes sem fios no precisam de cabos pr-instalados e os dispositivos que estiverem na rede so configurados de uma forma transparente (transparncia de configurao) para obter conexo sem precisar de descrever os nomes ou endereos dos servios locais para poder acede-los. Facilidade de integrao com servios locais dispositivos colocados em (e se movendo entre) redes existentes, eles automaticamente acedem os servios disponibilizados pela rede sem uma configurao especial por parte de utilizador.
Conexo limitada os utilizadores nem sempre esto conectados enquanto eles se movem. Pe exemplo, eles podem ser desconectados de rede wireless, se estiverem a viajar de comboio num tnel. Eles podem tambm estardesconectados por um longo perodo de tempo em regies onde a rede wireless no cobre ou quando caro para o utilizador se manter ligado. Segurana e privacidade muitos aspectos relacionados com segurana e privacidades devem ser tomados em conta em cenrios semelhantes aos do hotel em que temos servios de msica, alarme e acesso a Internet. Os clientes do hotel so vulnerveis a ataques de outros clientes ou empregados do hotel que acedem servios no supervisionados. Os clientes que, a partir do hotel, acedem a intranet das duas casas podem expor dados pessoais que so supostos estarem escondidos nos firewalls ou podem abrirComputaao Distribuida - Srgio Gonalo fora. portas de ataque a partir de 16-05-2012 54

O conjunto de funes disponvel para invocao num processo (quer seja processo servidor ou peer) especificado por uma ou mais definies de interfaces. Numa forma bsica da arquitectura cliente servidor, cada processo servidor visto como uma entidade com funes de interface bem definidas para serem invocadas.

16-05-2012

Computaao Distribuida - Srgio Gonalo

55

Em linguagens orientadas a objectos tais como Java e C++, com suporte adicional apropriado, processos distribudos podem ser construdas em mais formas de orientao a objectos. Muitos objectos podem ser encapsulados num processo servidor ou peer e suas referncias so passadas a outros objectos de forma que possam ser acedidas pela invocao remota. Esta abordagem adoptada por CORBA, Java, com o seu mecanismo de invocao remota (RMI).

16-05-2012

Computaao Distribuida - Srgio Gonalo

56

Desempenho o Tempo de resposta: carga do servidor e da rede, delay em atravessar camadas de software, volume de dados o Capacidade de processamento cliente, servidor, rede (throughput) o Balanceamento de carga (diviso de trabalho, eg. applets, DNS, etc) Qualidade de servio Uso de cache e replicao Dependabilidade: garantia (confiana) que um sistema oferece no provimento de um servio ou tarefa o Correco, confiabilidade e segurana
16-05-2012 Computaao Distribuida - Srgio Gonalo 57

Aspectos:
o Tolerncia a falhas

Uso de mltiplos componentes (replicao) para permitir a disponibilidade o servio


Segurana Localizar (pr) dados e recursos sensveis em locais que ofeream os nveis adequados de segurana e de controle o Disponibilizar recursos de forma parcial (baseado na autorizao do usurio)

16-05-2012

Computaao Distribuida - Srgio Gonalo

58

Todos modelos, acima descritos, compartilham algumas propriedades fundamentais. Em particular, todos so compostos por processos que se comunicam por envio/recebimento de mensagens numa rede de computadores. Todos modelos compartilham os aspectos gerais de um projecto de sistemas distribudo (que devem ser considerados) vistos nas aulas anteriores, concernentes ao desempenho, confiabilidade, redes e segurana de recursos no sistema. Neste ponto so apresentados modelos baseados nas caractersticas fundamentais que nos permitem ser mais especficos acerca das suas caractersticas, falhas e riscos de segurana que so sujeitos.
16-05-2012 Computaao Distribuida - Srgio Gonalo 59

Deste modo, o modelo de sistema deve responder as seguintes questes: Quais as principais entidades no sistema? Como essas entidades interagem Quais as caractersticas que afecta o comportamento individual e colectivamente. Objectivo de um modelo : Tornar explcitas todas suposies relevantes sobre o sistema em modelao. Permitir generalizaes sobre o que possvel ou impossvel de ser realizado dadas as suposies. As generalizaes podem se tornar sob forma de objectivo principal de algoritmos ou propriedades desejveis que sejam garantidas. A garantia depende da anlise lgica, quando apropriado, prova matemtica.
16-05-2012 Computaao Distribuida - Srgio Gonalo 60

Isto suficiente para se ganhar pelo conhecimento do que o sistema faz ou no. Permitindo saber se o modelo de sistema em desenvolvimento funcionar ou no, de forma a decidir sobre o seu desenvolvimento. Os aspectos de sistemas distribudos que se deseja compreender em modelos fundamentais so: interaco, falhas e segurana.

16-05-2012

Computaao Distribuida - Srgio Gonalo

61

Interaco computao ocorre em processos. Processos se comunicam em troca de mensagens, resultando em comunicao e coordenao (sincronizao e ordenao de actividades) entre processos. Na anlise e desenho de sistemas distribudos concentrase especialmente nestas interaces.

O modelo de interaco deve reflectir que comunicao ocorre com atraso, frequentemente considerado durao, e a exactido com que processos independentes podem ser coordenados e limitados por estes atrasos e pela dificuldade de manter a mesma noo de tempo em todos computadores num sistema distribudo.

16-05-2012

Computaao Distribuida - Srgio Gonalo

62

Falhas O funcionamento correcto do sistema distribudo ameaado a qualquer momento que ocorre uma falha em qualquer um dos computadores onde estiver a ser executado (incluindo falhas de software) ou na rede que os conecta. O modelo de falha define e classifica as falhas. Este modelo providncia as bases para anlise dos seus potenciais efeitos e para o desenho de sistemas que so capazes de tolerar cada tipo de falha enquanto continuam a funcionar correctamente. Segurana a natureza modular de um sistema distribudo e a sua abertura o expe a ataques, por ambos agentes: internos e externos. O modelo de segurana define e clarifica como esse ataques podem acontecer, providenciando as bases essenciais para anlise das ameaas aos sistemas e para o desenho de sistemas que so capazes de resistir a esses ataques.
16-05-2012 Computaao Distribuida - Srgio Gonalo 63

Sistemas distribudos so compostos por muitos processos, interagindo de uma forma complexa. Por exemplo. Processos de servidores mltiplos podem cooperar uns com os outros para providenciar servios. Por exemplo, Domain Name Service que particiona e replica seus dados em diferentes servidores na Internet; Network Information Service da Sun que mantm cpias de passwords em vrios servidores na rede local. Um conjunto de processos peer podem cooperar uns com os outros para atingir um objectivo comum. Por exemplo, o Sistema de vdeo-conferncia que distribui fluxos de dados udio e imagem de forma similar, mas com severos constrangimentos em tempo real.
16-05-2012 Computaao Distribuida - Srgio Gonalo 64

A interaco entre processos permite a realizao de todas actividades de um sistema distribudo. Cada processo tem o seu estado, consistindo dos dados que ele pode aceder e actualizar, incluindo as variveis do seu programa. O estado pertencente a cada processo completamente privado, isto , no pode ser acedido e actualizado por qualquer um dos outros processos.

O desempenho do canal de comunicao realizado de vrias formas num sistema distribudo, por exemplo, a implementao de streams ou por uma simples passagem de uma mensagem numa rede. A comunicao numa rede tem as seguintes caractersticas de desempenho relacionadas com latncia, largura de banda e Jitter.
16-05-2012 Computaao Distribuida - Srgio Gonalo 65

O atraso entre o inicio da transmisso de uma mensagem a partir de um processo e o incio da recepo por um outro processo referido como latncia. A latncia inclui: O tempo levado pelo primeiro string de bits transmitidos pela rede para atingir o destinatrio. Por exemplo, a latncia para a transmisso de uma mensagem atravs de uma ligao satlite o tempo para um sinal de rdio viajar para o satlite e de volta. O atraso no acesso da rede, que aumenta significativamente quando a rede est sobrecarregada. Por exemplo, numa transmisso Ethernet a estao emissora espera para que o trfego na rede fique aliviado. O tempo levado pelos servios de comunicao do sistema operativo em ambos processos e envio recepo, que varia de acordo com a carga corrente do 16-05-2012 sistema operativo. Computaao Distribuida - Srgio Gonalo 66

A largura de banda de uma rede de computadores a quantidade total de informao que pode ser transmitida num dado instante de tempo. Quando um grande nmero de canais de comunicao est usando a mesma rede, eles tem de partilhar a mesma largura de banda.
Jitter a variao no tempo levado para entregar uma srie de mensagens. Jitter relevante para mensagens multimdia. Por exemplo, se consecutivos segmentos de dados udio forem tocados com diferentes intervalos, o som ser distorcido.

16-05-2012

Computaao Distribuida - Srgio Gonalo

67

Cada computador num sistema distribudo tem o seu relgio interno, que pode ser usado pelo processo local para obter o tempo corrente. Deste modo, dois processos a serem executados em computadores diferentes podem associar nos seus eventos um selo do tempo. Contudo, mesmo se dois processos lerem os seus relgios ao mesmo tempo, os seus relgios locais pode indicar valores (horas) diferentes. Isto porque o relgio do computador oscila na hora certa, ainda o mais importante que essa oscilao mdia difere de um computador a outro.

16-05-2012

Computaao Distribuida - Srgio Gonalo

68

H varias abordagens para correco do tempo em processos do computador. Por exemplo, computadores podem usar receptores de rdios para obter hora a partir do GPS com preciso por volta de 1 micro segundo. Mas o receptor GPS no funciona numa rea coberta, assim como os custo podem no se justificarem para todos computadores. Apesar disso, um computador que tenha uma fonte de tempo tal como GPS pode enviar mensagens de tempo para outros computadores na rede. O resultado acordado entre relgios locais afectado por variao de atraso de mensagens.

16-05-2012

Computaao Distribuida - Srgio Gonalo

69

Em sistemas distribudos difcil estabelecer limites no tempo usado para execuo do processo, entrega de mensagens ou oscilao do relgio. Dois pontos extremos providenciam um par do modelo simples: o primeiro tem maior aproximao de tempo e o segundo no faz nenhuma aproximao sobre o tempo.

16-05-2012

Computaao Distribuida - Srgio Gonalo

70

Sistemas distribudos sncronos Um sistema distribudo sncrono aquele em que os seguintes intervalos esto definidos:

O tempo para executar cada estgio do processo que se conhea o intervalo (mnimo e mximo)
Cada mensagem transmitida no canal recebida dentro do seu tempo mais longo (limite superior do intervalo) Cada processo tem sua hora local, que a variao mdia, da hora certa do limite mximo conhecido.

16-05-2012

Computaao Distribuida - Srgio Gonalo

71

Em sistemas sncronos possvel usar timeout por exemplo para detectar a falha de um processo. Sistemas distribudos sncronos podem ser construdos. O que necessrio que os processos realizem executam actividades com recursos conhecidos, para os quais podem ser garantidos uma velocidade do processador suficiente e capacidade de rede.

16-05-2012

Computaao Distribuida - Srgio Gonalo

72

Muitos sistemas distribudos, por exemplo a Internet, so muito importantes sem serem classificados como sistemas sncronos. Por isso a necessidade de um modelo alternativo: o sistema distribudo assncrono em que no h limite:

Velocidade de execuo dos processos por exemplo, a execuo de um processo numa determinada fase pode demorar um pico segundo e um outro demorar um sculo. Isto , cada fase de execuo pode demorar um longo perodo de tempo aleatrio.

16-05-2012

Computaao Distribuida - Srgio Gonalo

73

Atraso na transmisso da mensagem por exemplo, uma mensagem enviada do processo A para o processo B pode demorar zero segundos, e outro pode demorar vrios anos. Em outras palavras, uma mensagem pode ser recebida aps um longo perodo aleatrio de tempo.
Oscilao do relgio mais uma vez a oscilao do relgio aleatria. Os modelos assncronos no permitem suposies (aproximaes) de intervalos de tempo envolvido numa execuo. Isto modela exactamente a Internet, no qual no h intrnseco limite no servidor ou na carga da rede. E desta forma, no tempo que estademora. Por exemplo, para transferir um ficheiro usando FTP. s vezes uma mensagem de e-mail pode demorar dias para chegar ao destino.
16-05-2012 Computaao Distribuida - Srgio Gonalo 74

Modelo de falhas
Num sistema tanto os processos (e computador) como os canais de comunicao podem falhar pois, no possvel conceber componentes sem falhas, apenas se pode diminuir a probabilidade de as mesmas ocorrerem. O modelo de falha consiste na definio dos mecanismos no qual as falhas podem ocorrer, de modo a se compreender o efeito dessas falhas. O modelo de falhas abrange ainda a indicao rigorosa do comportamento global do sistema na presena dos diferentes tipos de falhas.

16-05-2012

Computaao Distribuida - Srgio Gonalo

75

Fault tolerance - tolerncia a falhas


Propriedade de um sistema distribudo que lhe permite recuperar da existncia de falhas sem introduzir comportamentos incorrectos. Um sistema deste tipo pode mascarar as falhas e continuar a operar, ou parar e voltar a operar mais tarde, de forma coerente, aps reparao da falha.

Availability disponibilidade
Mede a fraco de tempo em que um servio est a operar correctamente, isto , de acordo com a sua especificao. Para um sistema ser altamente disponvel (highly available) deve combinar um reduzido nmero de falhas com um curto perodo de recuperao das falhas (durante o qual no est disponvel).
16-05-2012 Computaao Distribuida - Srgio Gonalo 76

Reliability - fiabilidade
Mede o tempo desde um instante inicial at primeira falha, i.e., o tempo que um sistema funciona correctamente sem falhas. Um sistema que falha com grande frequncia e recupere rapidamente tem baixa fiabilidade, mas alta disponibilidade.

Timeliness- adequao temporal ou pontualidade


Em sistemas de tempo real a garantia de que o sistema capaz de obedecer a constrangimentos temporais, isto , a capacidade que o sistema tem de garantir limites para o tempo que as diferentes aces levam a executar.

16-05-2012

Computaao Distribuida - Srgio Gonalo

77

Tipos de falhas
Hadzilaco e Teang [1994], apresentou uma classificao em que distingue entre as falhas de processos e as do canal de comunicao. Falhas por omisso e arbitrrias d-se quando um processo ou um canal de comunicao falha a execuo de uma aco que devia executar. Por exemplo uma mensagem que devia chegar no chegou, processo falha (crash quer dizer que interrompeu a execuo e as fases subsequentes no sero realizados).
Falhas por omisso -

16-05-2012

Computaao Distribuida - Srgio Gonalo

78

Falha arbitrria ou bizantina - d-se quando se produziu algo no previsto. Exemplo: chegou uma mensagem corrompida, um atacante produziu uma mensagem no esperada.

16-05-2012

Computaao Distribuida - Srgio Gonalo

79

Mascarar falhas de componentes


Para compensar os problemas levantados pelas falhas usamse tcnicas para as mascarar. Desta forma possvel confinar os seus efeitos sobre o sistema. As falhas de omisso podem ser mascaradas por replicao ou repetio. Exemplo: se uma mensagem no chegou dentro de um certo perodo o que se detecta por um timeout ento pode-se emiti-la novamente. Outra hiptese duplicar o canal, enviar mais do que uma cpia em paralelo e filtrar as mensagens duplicadas.

16-05-2012

Computaao Distribuida - Srgio Gonalo

80

As falhas arbitrrias podem ser difceis de mascarar. Pode-se tentar transform-las em falhas por omisso. Exemplo: um CRC numa mensagem permite transformar uma falha bizantina do canal numa falha por omisso. O mesmo tipo de tcnicas usam-se em muitas vezes nos componentes hardware do tipo. Falhas temporais Uma falha temporal d-se quando um evento que se devia produzir num determinado perodo de tempo ocorreu mais tarde. As falhas temporais so difceis ou impossveis de mascarar. Normalmente apenas os sistemas de tempo real se preocupam com este tipo de falha.
16-05-2012 Computaao Distribuida - Srgio Gonalo 81

Nota: As falhas por omisso e as falhas temporais dizem-se falhas benignas pois so mais facilmente mascarveis e no corrompem to facilmente os outros componentes.

16-05-2012

Computaao Distribuida - Srgio Gonalo

82

Modelo de segurana Nas primeiras aulas foi apontada a partilha de recursos como um dos factores motivadores para Computacao Distribudos e foi descrita posteriormente a arquitectura dos seus sistemas em termos de processos encapsulando objectos e providenciado acesos a eles atravs de interaces com outros processo. O modelo arquitectural providencia as bases para o modelo de segurana: a segurana em sistemas distribudos pode ser alcanada assegurando os processos e os canais usados para a sua interaco e protegendo os objectos que eles encapsulam contra acesos no autorizados.

16-05-2012

Computaao Distribuida - Srgio Gonalo

83

A proteco descrita em temos de objectos, embora os conceitos se apliquem igualmente a recursos de todos os tipos.

Protegendo objectos
A figura a seguir mostra um servidor que possui uma coleco de objectos que podem ser invocados por usurios. Estes usurios podem executar programas clientes que enviam requisies ao servidor para realizar operaes nos objectos. O servidor executa a operao especificada em cada requisio e envia a resposta ao cliente.

16-05-2012

Computaao Distribuida - Srgio Gonalo

84

16-05-2012

Computaao Distribuida - Srgio Gonalo

85

Os objectos podem ser usados em diferentes formas por diferentes usurios. Por exemplo, alguns objectos podem conter dados privados do utilizador, como password e outros objectos podem conter dados partilhados tais como pginas Web. Para suportar isto, os privilgios de acesso especificam quem permitido para realizar operaes num objecto, por exemplo, quem permitido para ler e alterar o estado do objecto. por isso que se inclui os usurios neste modelo como os beneficirios dos privilgios de acesso. Isso feito associando cada requisio e cada resultado respectiva autoridade.

16-05-2012

Computaao Distribuida - Srgio Gonalo

86

A referida autoridade chamada principal. Um principal pode ser um usurio ou um processo. O servidor responsvel por verificar a identidade dos principais em cada requisio e verificar se eles detm privilgios suficientes para realizar a operao pretendida num determinado objecto, recusando se no os tiver. O cliente pode verificar a identidade do principal do processo servidor para garantir que o resultado provm de um servidor vlido.

16-05-2012

Computaao Distribuida - Srgio Gonalo

87

Protegendo processos e suas interaces Os processos interagem pelo envio de mensagens. As mensagens so expostas a ataque porque o servio da rede e comunicao que os processos usam esto abertos, para habilitar qualquer par de processos a interagirem. Os processos servidores e peer expem seus interfaces, permitindo que invocaes sejam enviadas aos respectivos processos por quaisquer outros processos. Os sistemas distribudos so frequentemente implementados e usados em tarefas so sujeitos a ataques externos por usurios hostis. Isto especialmente verdadeiro para aplicaes que lidam com transaces bancrias, informao classificada ou confidencial ou outra informao cuja integridade crucial. A integridade ameaada a violaes de segurana a processos assim como a falhas de comunicaes.
16-05-2012 Computaao Distribuida - Srgio Gonalo 88

O inimigo Para modelar ameaas de segurana, o inimigo (tambm conhecido como adversrio) identificado como sendo capaz de enviar qualquer mensagem para qualquer processo e ler e copiar qualquer mensagem entre um par de processos, como est ilustrado na figura abaixo.

16-05-2012

Computaao Distribuida - Srgio Gonalo

89

Este tipo de ataque pode ser feito usando um computador ligado a rede no qual se pode executar um programa que l o contedo das mensagens da rede que so enviados a outros computadores da rede ou um programa que gera mensagens para emitir requisies falsas a servios dando a entender que provm de usurios autorizados. O ataque pode advir de um computador reconhecido da rede ou do computador da rede no autorizado. As ameaas de um potencial inimigo esto descritas nos pontos abaixo que abordam ameaas a processos, ameaas a canais de comunicao e negao de servio.

16-05-2012

Computaao Distribuida - Srgio Gonalo

90

Ameaas a processos Um processo que desenhado para lidar com requisies pode receber mensagens de qualquer processo num sistema distribudo, e no pode necessariamente determinar a identidade do emissor. Os protocolos de comunicao tais como Internet Protocol (IP) que incluem o endereo do computador emissor em cada mensagem, mas no difcil para um inimigo gerar uma mensagem com um endereo fictcio. A falta de confiana no emissor da mensagem uma ameaa ao correcto funcionamento a ambo servidores e clientes, como descrito abaixo:

16-05-2012

Computaao Distribuida - Srgio Gonalo

91

Servidores: dado que o servidor pode receber requisies de quaisquer clientes, ele no pode determinar a identidade do principal que est associado a uma invocao. Mesmo que o servidor requeira a identidade do principal em cada invocao, um inimigo pode gerar uma invocao com uma falsa identidade. Sem a confiana da identidade do emissor, um servidor no pode determinar se uma operao pode ser aceite ou rejeitada. Por exemplo, um servidor de e-mail no poderia saber se um usurio associado a uma invocao que requisita um e-mail de uma determinada caixa de entrada permitido a fez-lo ou foi uma requisio de um inimigo.

16-05-2012

Computaao Distribuida - Srgio Gonalo

92

Clientes: quando um cliente recebe uma resposta de uma invocao a um servidor, no pode determinar se o resultado provm de um servidor vlido ou de um inimigo, talvez spoofing o servidor de e-mail. Deste modo o cliente pode receber um resultado de um servidor no relacionado com a invocao, como, por exemplo, uma caixa de entrada falsa ( que no pertence ao dono da caixa de entrada).

16-05-2012

Computaao Distribuida - Srgio Gonalo

93

Ameaas a canais de comunicao Um inimigo pode copiar, alterar ou injectar mensagens na rede. Tais ataques representam ameaas a privacidade e integridade da informao e do sistema medida que circulam pela rede. Por exemplo, um resultado contendo o email do usurio pode ser revelado a um outro usurio ou pode ser alterado para mostrar algo diferente. A outra forma de ataque a tentativa de gravar mensagens e tentar reenvi-las num outro momento, fazendo com que seja possvel reenviar a mesma mensagem vrias vezes. Por exemplo, algum pode-se beneficiar da tentativa de reenviar uma mensagem de invocao solicitando a transferncia de dinheiro de uma conta bancria a outra. Todos esses ataques podem ser evitados usando canais seguros de comunicao, que so descritos abaixo como e baseados em criptografia e autenticao.
16-05-2012 Computaao Distribuida - Srgio Gonalo 94

Defendendo-se das ameaas de segurana Criptografia e segredos partilhados: suponhamos um par de processos (por exemplo um cliente e um servidor concreto) partilham um segredo, ou seja, s eles, os dois, conhecem o segredo e no mais outro processo no sistema distribudo. Ento se a mensagem trocada pelo par de processos inclui informao que prova a identidade do emissor, o receptor sabe com certeza, que emissor foi o outro processo par. Evidentemente, o cuidado deve ser tomado para que o segredo no seja revelado ao inimigo.

16-05-2012

Computaao Distribuida - Srgio Gonalo

95

Criptografia cincia que mantm as mensagens seguras, e a encriptao o processo de transformar uma mensagem num contedo ilegvel. A criptografia moderna baseada em algoritmos de encriptao que usam chaves secretas grandes nmeros que so difceis de adivinhar que transformam dados numa forma que no pode ser somente reservada ao conhecimento da chave de decriptao.

16-05-2012

Computaao Distribuida - Srgio Gonalo

96

Autenticao o uso de segredos partilhados e encriptao p providenciam as bases para a autenticao de mensagens providenciando identidades apresentados pelos emissores. A tcnica bsica de autenticao incluir na mensagem um poro encriptada que contm elementos suficientes na mensagem que garantem autenticidade. A poro de autenticao de uma requisio a um servidor de ficheiros para a leitura de uma parte de um ficheiro, por exemplo, pode incluir a representao da identidade do principal da requisio, a identidade do ficheiro e a data horas da requisio, todos encriptados com uma chave secreta partilhada entre o servidor de ficheiros e o processo requisitante. O servidor poderia decriptar e verificar se os detalhes no encriptados correspondem aos detalhes especificados na requisio.
16-05-2012 Computaao Distribuida - Srgio Gonalo 97

Canais seguros: A encriptao e autenticao so usadas para construir canais seguros como camadas de servio no topo dos servios de comunicao existentes. Um canal seguro um canal de comunicao conectando um par de processos, cada um deles actua em nome do principal, como mostrado na fig. abaixo.

16-05-2012

Computaao Distribuida - Srgio Gonalo

98

Um canal seguro tem as seguintes propriedades: Cada processo reconhece a confiabilidade da identidade do principal em nome do qual o processo executado. Por isso, se as comunicao de um cliente e um servidor via canal seguro, o servidor conhece a identidade do principal que est o invocando e pode verificar os privilgios antes de responder a qualquer solicitao. Isto permite que os servidores protejam seus objectos correctamente e permite ao cliente de ter a certeza que est recebendo resultados de um servidor autntico. Um canal seguro assegura que a privacidade e a integridade (proteco contra interferncias) dos dados transmitidos no mesmo Cada mensagem detm o selo (stamp) do tempo fsico e lgico para que a mensagem seja reenviada ou reordenada.
16-05-2012 Computaao Distribuida - Srgio Gonalo 99

Os canais seguros tornaram-se uma importante ferramenta para proteger comrcio electrnico e da comunicao, os exemplos disso so as VPNs Virtual Private Network, o protocolo Secure Sockets Layer (SSL).

Outras possibilidades de ameaa de um inimigo


A negao de um servio (denial of service) e o cdigo mvel so as possibilidades oportunas para um inimigo poder interromper as actividades de processo:

16-05-2012

Computaao Distribuida - Srgio Gonalo

100

Denial of Service Esta uma forma de ataque em que o inimigo interfere com as actividades de usurios autorizados, fazendo invocaes excessivas a servios ou transmisso de mensagens na rede, resultando na sobrecarga dos recursos fsicos (largura de banda, capacidade do processamento do servidor). Tais ataques so frequentemente realizados com a inteno de atrasar ou impedir aces de outros usurios. Por exemplo, a operao de trancar electronicamente uma porta num edifcio pode ser desabilitada por um ataque que sature o controlo electrnico com requisies invlidas.

16-05-2012

Computaao Distribuida - Srgio Gonalo

101

Cdigo mvel
O cdigo mvel levanta um interessante problema de segurana para qualquer processo que executa um cdigo de programa vindo de outro lugar, por exemplo um anexo de e-mail. Tal cdigo pode ter um papel de um cavalo de Tria, dando a entender que tem propsitos inocentes aos processos, mas que no seja o originrio do cdigo. Os mtodos em que os ataques podem ser feitos so vrios, o ambiente de sistema distribudo deve ser construdo cuidadosamente de forma a evitar esses ataques. Muitas dessas questes forma endereadas pelo Java e outros sistemas de cdigo mvel, mas a histria recente mostra algumas fraquezas. Isto mostra a necessidade de uma anlise e desenho rigoroso de todo sistema de segurana.

16-05-2012

Computaao Distribuida - Srgio Gonalo

102

O uso dos modelos de segurana

O alcance da segurana em sistemas distribudos pode ser reforado com o envolvimento do controlo de acesso a objectos com privilgios pr definidos e o uso de canais seguros para comunicao. Infelizmente, este no em geral ocaso. O uso de tcnicas de segurana tais como a encriptao e controlos de acesso incorre em custos substanciais de gesto e processamento. O modelo de segurana descrito acima providencia as bases para anlise e desenho de sistemas seguros nos quais estes custos podem ser minimizados, mas as ameaas a sistemas distribudos levantam-se em muitos pontos e uma anlise cuidadosa dever ser realizada em todas as fontes possveis no ambiente do sistema, fsico e humano. O modelo envolve a construo do modelo de ameaa, listando todas as formas de ataque para os quais o sistema est exposto e avaliao dos riscos e das consequncias de cada uma.- Srgio Gonalo 16-05-2012 Computaao Distribuida 103

A eficincia e os custos das tcnicas de segurana necessrias podem ser balanceados contra as ameaas.

16-05-2012

Computaao Distribuida - Srgio Gonalo

104

Bibliografia Tanebaum, Andr S.; Steen, Marten van. Distributed Systems: principles and paradigms, 2002 Coulouris, George et. Al. Distributed Systems: concepts and design 3rd edition, 2001 Marques, Jos Alves; Gudes, Paulo. Tecnologia de Sistemas Distribudos 2 edio, FCA, 1998 Boger, Marko. Java in Distributed Sytems: concurrency, distribution and persistance; 2001

16-05-2012

Computaao Distribuida - Srgio Gonalo

105