Sunteți pe pagina 1din 141

Caracterizao dos Sistemas Distribudos

Prof. Dr. Nilton Alves Maia

O que um sistema distribudo?

Rede B Rede A Rede C

Definies de Sistema Distribudo


"Um sistema distribudo uma coleo de computadores autnomos conectados por uma rede e equipados com um sistema de software distribudo." (Coulouris et all, 2007)

Definies de Sistema Distribudo

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

Definies de Sistema Distribudo


"Um sistema distribudo uma coleo de computadores independentes que aparenta ao usurio ser um computador nico." (Tanenbaum, 2008); Para suportar computadores e redes heterogneos e, simultaneamente, oferecer uma viso de sistema nico, os sistemas distribudos costumam ser organizados por meio de uma camada de software denominada Middleware;

Definies de Sistema Distribudo


A Middleware situada logicamente entre uma camada de nvel mais alto, composta de usurios e aplicaes, e uma camada subjacente, que consiste em sistemas operacionais e facilidades bsicas de comunicao;

Na Figura tm-se quatro computadores em rede e trs aplicaes, das quais a aplicao B distribuda para os computadores 2 e 3.

Exemplos de Sistemas Distribudos


A Internet; Uma Intranet, na qual uma poro da Internet que gerenciada por uma organizao; Sistemas mveis; Computao Ubqua (Ubiquitous Computing).

Exemplos de Sistemas Distribudos


Uma rede de estaes de trabalho em uma universidade ou companhia Uma rede de computadores em uma fbrica Um grande banco com muitas agncias, cada qual com um computadores e caixas automticas Sistema de reserva de passagens areas Sistema de controle de estoque, vendas e entregas numa cadeia de lojas Sistemas de acesso a recursos de multimdia e de conferncia

Motivao para a construo de Sistemas Distribudos


A principal motivao o compartilhamento de recursos computacionais. Os recursos compartilhados podem estar na forma de sistemas:
com servidores que permitem que os clientes acessem seus recursos; ou na forma de recursos que so encapsulados em objetos que podem ser acessados por outros clientes/objetos.

Compartilhamento de recursos
Capacidade de processamento Memria Armazenamento Banda de rede / acesso Disponibilidade Dispositivos (impressoras, monitores) Bateria

Consequncias da definio de Colouris et. all (2007) de Sistemas Distribudos


Concorrncia,
em uma rede de computadores, a concorrncia acontece normalmente. Dois usurios podem estar trabalhando independentes, mas compartilhando recursos como arquivos e impressoras.

Ausncia de Clock Global,


existe uma noo de que preciso pelo menos uma forma de sincronizao para coordenar as atividades entre os componentes em um sistema distribudo, mas no h uma forma simples de fazer essa coordenao apenas trocando mensagens;

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

Caracterizao de Sistemas Distribudos


As principais caractersticas para um projeto de componentes para o uso de Intranets em sistemas distribudos so:
Servios de Troca de Arquivos; Firewalls; Custo de instalao e Suporte de Software.

12

Princpios bsico para o compartilhamento de recursos


Reduo de custos:
compartilhamento de hardware como impressora, hard-disks, etc;

Compartilhamento de Alto Nvel: aplicaes, dados, servios.


Ex: pginas da Web, mquinas de buscas, sistemas de converso de moedas, etc.

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

Caractersticas do Servidor e do Cliente


Processo Servidor:
um processo passivo. pode solicitar operaes de servios de outros servidores; Deve funcionar continuamente;

Processo Cliente:
um processo ativo; funcionam apenas quando so solicitados pelos usurios ou aplicativos.

17

Desafios dos Sistemas Distribudos


Os Sistemas Distribudos so facilmente encontrados em qualquer lugar nos dias de hoje, mas alguns projetos tm requisitos que trazem muitos desafios para o seu desenvolvimento. Os principais desafios so:
Acesso a recursos; Transparncia da distribuio; Sistemas abertos; Escalabilidade; Confiabilidade; Flexibilidade; Desempenho; Heterogeneidade; Segurana.
18

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.

O compartilhamento de recursos induz a economia; Conexo de usurios e recursos facilita colaborao


ex: Internet troca de arquivos, correio, udio/vdeo, comrcio eletrnico...

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

Tipos de Transparncias da distribuio (TANENBAUN, 2008)


Acesso;

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

Tipos de Transparncias da distribuio (TANENBAUN, 2008)


Acesso;

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

Tipos de Transparncias da distribuio (TANENBAUN, 2008)


Acesso;

Localizao;
Migrao;

Relocao;
Replicao;

Concorrncia;
Falhas;
25

Transparncia da distribuio Migrao


Objetos podem migrar de uma mquina a outra por questes de desempenho, confiabilidade, segurana etc. Deve Ser feita de forma automtica pelo sistema Manter nome do objeto Garantir continuidade de comunicao

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

Tipos de Transparncias da distribuio (TANENBAUN, 2008)


Acesso;

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

Tipos de Transparncias da distribuio (TANENBAUN, 2008)


Acesso;

Localizao;
Migrao;

Relocao;
Replicao;

Concorrncia;
Falhas;
30

Transparncia da distribuio Replicao


Permite que vrias instncias de recursos sejam usadas para aumentar a confiabilidade e o desempenho Deve Mascarar o conhecimento das rplicas por parte dos usurios ou dos programadores de aplicativos

31

Tipos de Transparncias da distribuio (TANENBAUN, 2008)


Acesso;

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

Tipos de Transparncias da distribuio (TANENBAUN, 2008)


Acesso;

Localizao;
Migrao;

Relocao;
Replicao;

Concorrncia;
Falhas;
36

Transparncia da distribuio
Falha:
Tolerar , detectar e recuperar falhas

37

Transparncia da distribuio Sumrio (TANENBAUM, 2008)

38

Formas de Transparncia segundo a ANSA(1989) e a ISO (1992)


Transparncia de Acesso.
a capacidade de permitir acesso remoto ou local sempre da mesma maneira. Exemplo: Interface grfica de pastas e FTP;

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

Formas de Transparncia segundo a ANSA(1989) e a ISO (1992)


Transparncia de Replicao.
capacidade de permitir instncias mltiplas de um componente para aumentar a confiabilidade e desempenho sem o conhecimento do usurio ou da aplicao. Exemplo: DNS;

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

Formas de Transparncia segundo a ANSA(1989) e a ISO (1992)


Transparncia de Mobilidade.
a capacidade de permitir que os recursos e usurios possam ser mveis dentro de um sistema, sem que isto afete as operaes do usurio ou programa aplicativo. Exemplo: Telefones Celulares;

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

Sistemas abertos - Exemplo


A Internet, para poder oferecer um padro uniforme de servio de rede para os desenvolvedores, oferece uma srie de documentos especficos que so chamados de RFCs Requests For Comments, os quais so identificados por nmeros. Este conjunto de documentos especificam entre outras coisas, como os aplicativos devero utilizar o protocolo de Internet para utilizar os seus servios [www.ietf.org].

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.

Um Sistema Distribudo deve trabalhar em qualquer escala:


2 computadores em rede Milhares em vrias redes

44

Escalabilidade

45

Escalabilidade (Tanenbaum, 2008)


De tamanho possvel adicionar mais usurios e recursos ao sistema Geogrfica Usurios e recursos podem estar longe uns dos outros Administrativa O sistema pode ser fcil de gerenciar, mesmo que abranja muitas organizaes administrativas diferentes. Realidade:
Infelizmente, um sistema escalvel em uma ou mais dessas dimenses muitas vezes apresenta perda na capacidade de

desempenho a medida que ampliado.

46

Problemas de Escalabilidade de Tamanho

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

Fonte: Maia (2006)

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

Escalabilidade Problemas de Escalabilidade Geogrfica


Dificuldade para ampliar SD existentes que foram originalmente projetados para redes locais.
Os SDs so baseados em comunicao sncrona
Um cliente que solicita uma servio fica bloqueado at que uma mensagem seja enviada de volta.

Esta abordagem funciona bem em LANs mas no em redes de longa distancia.

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

Escalabilidade Problemas de Escalabilidade Administrativa


Uma questo difcil e, em muitos casos, ainda aberta como ampliar um SD por vrios domnios administrativos independentes.
Um problema importante que necessita ser resolvido o de polticas em relao a utilizao e pagamento de recursos, gerenciamento e segurana.

Medidas de segurana so necessrias para a expanso do SD para outro domnio:


Proteo contra ataques maliciosos no novo domnio.
Os usurios do novo domnio podem ter somente acesso de leitura ao sistema de arquivos do domnio original. Exemplo tpico: download de programas como applets em browsers web. O novo domnio pode impor limites severos aos direitos de acesso para esse cdigo.

O novo domnio tem de se proteger contra ataques maliciosos do SD.


51

Desafios para projeto de sistemas distribudos escalveis


Controlar os custo dos recursos fsicos:
medida que a demanda por um recurso aumenta, deve ser possvel, a um custo razovel, ampliar o sistema para atend-la. Em geral, para que um sistema com n usurios seja escalvel, a quantidade de recursos fsicos exigida para suport-los deve ser O(n) isto , proporcional a n.
Exemplo: se um servidor de arquivos pode suportar 20 usurios, ento dois servidores devero suportar 40 usurios.

Controlar a perda de desempenho:


Um sistema que mantm dados que pode crescer proporcionalmente a n usurios, no deve ter perda de desempenho pior que O(log(n)).

52

Desafios para projeto de sistemas distribudos escalveis


Impedir que os recursos de software se esgotem:
Um exemplo de falta de escalabilidade mostrada pelos nmeros de 32 bits usados como endereos IP (a quantidade de endereos est esgotando).

Evitar gargalos de desempenho


Em um projeto de SD, os algoritmos devem descentralizar o acesso aos recursos para evitar gargalos. Exemplo:
Pginas de Internet que so muito acessadas podem ter seus dados duplicados em mais servidores para evitar os gargalos.

53

Tcnicas de Escalabilidade
Ocultar latncias de comunicao Distribuio Replicao / Cache

54

Tcnicas de Escalabilidade Ocultar latncias de comunicao


Ideia bsica:
diminuir, o quanto possvel, o tempo de resposta a requisies remotas

55

Tcnicas de Escalabilidade Ocultar latncias de comunicao


Como alternativa pode-se implementar a comunicao assncrona:

executar outros trabalhos no lado do cliente enquanto espera resposta do servidor


Quando chega uma resposta, a aplicao interrompida e um processo especial chamado para concluir a requisio emitida anteriormente.

Exemplos de aplicao de comunicao assncrona:


sistemas de processamento de lotes, aplicaes paralelas nas quais tarefas mais ou menos independentes podem ser escalonadas para execuo enquanto um outra tarefa est esperando pela concluso da comunicao.

Contudo, existem muitas aplicaes que no podem fazer uso de efetivo de comunicao assncrona.
Exemplo: aplicaes interativas

56

Tcnicas de Escalabilidade Ocultar latncias de comunicao


Aplicaes interativas
Soluo: reduzir a comunicao global, passando parte da computao que normalmente executada no servidor para o processo cliente Exemplo 1: acesso a banco de dados por meio de formulrios com envio de uma mensagem separada para cada campo e espera de um reconhecimento pelo servidor.

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

Tcnicas de Escalabilidade Distribuio

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

Tcnicas de Escalabilidade Replicao/Cache


Vantagens:

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)

Detectar e recuperar falhas


Capacidade para detectar ocorrncia de falhas e levar o sistema a um estado aceitvel para a continuidade da operao (mecanismos de retransmisso de msgs)

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

Tcnicas usadas em sistemas tolerantes falha


Deteco de falhas
Algumas falhas podem ser detectadas.
Exemplo: Checksum pode ser utilizada para detectar dados danificados em uma mensagem ou arquivo.

Outras situaes no permitem uma deteco simples,


Exemplo: saber quando um servidor est fora do ar na Internet.

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

Tcnicas usadas em sistemas tolerantes falha


Tolerar Falhas.
Na Web, os browsers so projetados para tolerar falhas. Quando um servidor no pode ser conectado, o browser no fica eternamente tentando estabelecer uma conexo, ao invs disso, ele encerra a tentativa de conexo e em seguida avisa o usurio sobre a desistncia;

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.

Ex: Z80, 8080, 80386, pentium, motorola, etc.

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.

Ex: Unix e Windows.

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.

Ex: CORBA e Java RMI.

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.

A segurana de recursos de informao tem trs componentes:


Confidencialidade
proteo contra exposio para pessoas no autorizadas.

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.

Os desafios mais conhecidos so:


Enviar dados sensveis sobre uma rede no segura. Garantir a identificao do usurio remoto e dos agentes na rede.

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;

Cdigo Mvel Seguro,


neste caso necessrio ter muito cuidado em oferecer SD com a possibilidade de executar cdigos que possam ser recebidos pela rede. Ex: E-mails com programas atachados.

Atualmente vrias tcnicas envolvendo criptografias so utilizadas para tentar garantir a segurana em Sistemas Distribudos na Internet.
81

Tipos de SDs (Coulouris, 2007)


Internet
Intranet

Redes mveis e ubquas

82

Internet
A Internet um conjunto de redes de computadores, de muitos tipos diferentes, interligadas.

% %

ISP

intran et

backbone

satellite link desktop computer: server: network link:

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

WORLD WIDE WEB (www)


A Web (Berners-Lee, 1991) um sistema para publicao e acesso de recursos e servios atravs do uso da Internet.
Atravs de programas comuns como o Netscape ou Internet Explorer, o usurio pode acessar recursos compartilhados e remotos, como documentos, texto, imagens, udios e vdeos.

A Web surgiu na Europa no centro de pesquisas nucleares (CERN) na Sua, em 1989.


Desenvolveu-se a partir da necessidade de ter um meio mais eficiente e organizada de troca e armazenagem de documentos cientficos atravs da Internet. Sua principal caracterstica mais importante o uso do conceito de hipertextos.
O Hipertexto uma estrutura capaz de fazer referncia diretas a outros documentos dentro da rede Internet, tornando muito fcil recuperar o documento referenciado atravs do Browser.

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;

A Web pode acomodar vrios tipos de recursos.


Atravs da especificao do formato do contedo, Content-Type, possvel definir qualquer formato de arquivo para ser transferido para um browser.

86

Servidores e navegadores WEB

www.google.com Web servers www.cdk3.net

http://www.google.comlsearch?q=kindberg Browsers Internet http://www.cdk3.net/

www.w3c.org File system of www.w3c.org http://www.w3c.org/Protocols/Activity.html

Protocols

Activity.html

87

Padres tecnolgicos que suportam a WEB

A Web baseada em trs padres tecnolgicos a saber:


HTML - (HyperText Markup Language); URL - (Uniform Resource Locators); HTTP - (HyperText Transfer Protocol).

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.

Exemplo de um cdigo html:


<P> Para acessar a pgina do professor <A href=http://www.netium.com.br/noji/index.htm>Clique aqui</A> </P>

Resultado visto em um browser:


Para acessar a pgina do professor Clique aqui

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.

A estrutura geral de um HTTP URL :


http://nomedoservidor[:porta][/nomedocaminho] [?consulta][#fragmento] Um URL HTTP completo sempre comea com o string http://, seguido de um nome de servidor expresso como um nome DNS(Domain Name System); O nome DNS do servidor , opcionalmente, seguido do nmero da porta em que o servidor recebe os pedidos (por padro a porta 80).
91

HTTP URLs exemplos


http://www.cdk3.net/ http://www.w3.org/Protocols/Activity.htm#intro http://www.google.com/search?q=kindberg.

Nome do DNS do servidor http://www.cdk3.net/

Nome do caminho (padro)

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

Caractersticas do Protocolo HTTP


Interao Solicitao-Resposta, o protocolo HTTP baseado em solicitao e resposta.
O cliente envia a URL para identificar o servidor usando a primeira parte da URL que contm DNS. Se o servidor existir, o path e arquivo pesquisado. Caso o DNS ou o arquivo no seja encontrado, uma pgina de erro retornado;

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

Outras caractersticas da WEB


Formulrios, permite a entrada de dados que sero enviados ao servidor; Argumentos, aps a URL, pode se enviar informaes extras atravs da adio do caracter ?.
Ex: http://www.google.com/search?q=kindberg

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

Outras caractersticas da WEB


Javascript, uma linguagem de script voltado para ser executado normalmente no lado cliente, ou seja nos browsers.
Permite a facilidade de testar, por exemplo, os dados antes mesmos de enviar os dados para o servidor;

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

Tipos de SDs (Coulouris, 2007)


Internet

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

Uma intranet tpica

Instructors Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4

Tipos de SDs (Coulouris, 2007)


Internet Intranet

Redes mveis e ubquas

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

Mobile phone Printer Camera Laptop Host site

103

Computao Ubqua (Weiser, 1993)


So recursos computacionais que ficam disponveis no prprio
ambiente.
So dispositivos pequenos e baratos incorporados no dia a dia do lar ou escritrio de trabalho.

Computao onipresente ou computao presente em qualquer lugar:


Neste cenrio, um usurio pode, por exemplo,
conversar diretamente com a mquina de lavar, pedir para ligar o aparelho de som.

Ao mesmo tempo, estes mesmo dispositivos podem enviar mensagem para seus donos atravs de emails ou pagers para avisar sobre algum evento.

104

Desafios da Computao mvel e ubqua


Computao mvel:
Limitao da bateria; Limitao da largura de banda;

Computao Ubqua:
Reconfigurao de acesso; Complexidade na implementao; Privacidade e segurana.

105

Tipos de Sistemas Distribuidos (Tanenbaum, 2008)


Sistemas de Computao Distribudos Sistemas de Informao Distribudos Sistemas Distribudos Pervasivos

106

Sistemas de Computao Distribudos


So utilizados para realizar tarefas computao de alto desempenho. Divide-se em dois grupos Gerais:
Sistemas de Computao de Cluster Sistemas de Computao em Grade

de

Sistemas de computao de clusters


Conjunto de estaes de trabalho ou PCs semelhantes, conectados por meio de uma rede de alta velocidade Cada n executa o mesmo SO Hardware subjacente homogneo Usado para processamento paralelo nico programa executado em vrias mquinas

108

Cluster Beowulf Donald Becker (NASA)

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

Sistemas de computao em grade (grids)


SDs montados como federao de computadores, na qual cada sistema pode possuir um sistema administrativo diferente, com diferentes hardwares, softwares e tecnologias empregadas Apresentam alto grau de heterogeneidade Os recursos de diferentes organizaes so reunidos para permitir a colaborao de um grupo de pessoas e organizaes.
Entre os recursos tpicos esto servidores de computao (supercomputadores, possivelmente implementados como computadores de cluster), armazenamento em bancos de dados, telescpios, sensores e outros.

Tal colaborao realizada sob a forma de conceito de organizao virtual.


As pessoas que pertencem organizao virtual tem direitos de acesso aos recursos.
110

Sistemas de computao em grade (grids)


Grande parte do Software para realizar computao em grade desenvolvido com a finalidade de prover acesso a recursos de diferentes domnios administrativos , e somente para usurios e aplicaes que pertenam a uma organizao virtual especfica. Arquitetura proposta por Foster et al. (2001):

Sistemas de computao em grade (grids)


A camada mais baixa, chamada camada base, prov interfaces para recursos locais em um site especfico.
Essas interfaces so projetadas para permitir compartilhamento de recursos dentro de uma organizao virtual. Prov funes para consultar o estado e as capacidades de um recurso, em conjunto com funes para o gerenciamento propriamente dito.

Exemplo: Travar um recurso.

Sistemas de computao em grade (grids)


A camada de conectividade consiste em protocolos de comunicao para suportar transaes da grade que abranjam a utilizao de mltiplos recursos.
Exemplo: Protocolos de transferncia de dados entre recursos ou para localizar um recurso desde uma localizao remota.

Alm disso, a camada de conectividade conter protocolos de segurana para autenticar usurios e recursos.

Sistemas de computao em grade (grids)


A camada de recursos responsvel pela gesto de um recurso, utilizando funes fornecidas pela camada de conectividade e chama diretamente as interfaces disponibilizadas pela camada base. Exemplo: Recursos responsvel pelo controle de acesso, dependendo da autenticao realizada pela camada de conectividade.

Sistemas de computao em grade (grids)


A camada coletiva manipula o acesso a mltiplos recursos e normalmente consiste em servios para descoberta de recursos, alocao e escalonamento de tarefas para mltiplos recursos, replicao de dados, etc. A camada de aplicao consiste em aplicaes que funcionam dentro de uma organizao e que fazem uso da computao em grade.

Sistemas de computao em grade (grids)


As camadas coletiva, de conectividade e de recursos formam o cerne daquilo que poderia ser chamado de camada de Middleware em grade; Em conjunto essas camadas do acesso e gerenciam recursos que esto potencialmente dispersos por vrios sites.

Sistemas de Informao Distribudos


Sistemas voltados para integrar um conjunto de aplicaes a um sistema de informaes de mbito empresarial. Recurso principal: informao. Exemplo: Portal de Turismo

Sistemas de Informao Distribudos


A origem dos sistemas de informao distribudos est geralmente ligada organizaes que se defrontaram com uma grande quantidade de aplicaes em rede e que passaram a ter crescentes problemas de interoperabilidade. Usualmente uma aplicao em rede que era executada em um servidor, que tambm era o servidor de banco de dados, disponibilizando-a para acessos remotos, denominados clientes.

Sistemas de Informao Distribudos


O cliente enviava uma requisio ao servidor para executar uma operao especfica e ficava aguardando uma resposta. Integrao o processo no qual clientes empacotavam vrias requisies, em geral para vrios servidores, em uma requisio maior como uma transao distribuda. A ideia principal que todas ou nenhuma das requisies seriam executadas. Todavia, a medida em que os componentes de dados foram se distinguindo dos de processamento, ficou claro que as aplicaes deveriam se comunicar entre si.

Sistemas de Informao Distribudos


Grupos existentes:
Sistemas de processamento de transaes:
Aplicaes de banco de dados

Integrao de Aplicaes Empresariais


Aplicaes existentes nas empresas (ex. de diferentes setores) precisam realizar troca de informaes.

Sistemas de Processamento de Transaes


Operaes em um Banco de Dados costumam ser realizadas sob a forma de transaes.

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

Sistemas de Processamento de Transaes


Programar a utilizao de Transaes requer primitivas especiais que devem ser fornecidas pelo SD subjacente. Exemplos tpicos de primitivas de transao so:

Sistemas de Processamento de Transaes


Normalmente uma transao deve atender s quatro propriedades ACID:
Atmicas: Para todo restante do sistema, a transao acontece como se fosse indivisvel. Consistente: A transao no viola invariantes de sistema.
Exemplo de invariante: no sistema bancrio um invariante fundamental a lei da conservao do dinheiro. Aps uma transferncia interna, a quantidade de dinheiro no banco tem de ser a mesma que era antes da transferncia]

Isoladas: Transaes concorrentes no interferem entre si. (Serializveis) Durveis: Uma vez comprometida uma transao, as alteraes sero permanentes.

Sistemas de Processamento de Transaes


O uso de transaes em sistemas distribudos servir para enderear dois problemas:
Concorrncia falhas: garantir consistncia dos dados

Exemplo do no uso de transaes:


Transferncia bancria on-line Operao feita em 2 passos:
Saque Depsito

Se a conexo cair aps o saque:


ocorre o dbito na primeira no ocorre o crdito na segunda ($$ sumiu)

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

Transaes Distribudas Simples

O cliente invoca todos os servidores necessrios para completar a transao requisitada...

Requisies so feitas seqencialmente

Transaes Distribudas Aninhadas

Podem executar simultaneamente

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...

Exemplo de Transao Distribuda Aninhada


Um cliente transfere 10$ de A (servidor X) para C (servidor Z), e transfere 20$ de B (servidor Y) para D (servidor Z)

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)

Todas as quatro requisies podem ser executadas em paralelo melhor desempenho

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.

Writeahead Log (intention list):


antes de um dados ser modificado, so gravadas informaes em um log (qual a transao est efetuando alteraes, os dados que esto sendo alterados, os valores antigos e novos). Aps o log ter sido gravado as alteraes so feitas.

Monitor de Processamento de Transaes (TP)


Quando os sistemas de middleware comearam, o componente que manipulava transaes distribudas, ou aninhadas, formava o ncleo para a integrao de aplicaes no nvel do servidor ou do banco de dados. O monitor de TP permite que uma aplicao acesse vrios servidores de banco de dados simultaneamente, dando a impresso de um processo nico.

Integrao de aplicaes empresariais


Componentes de aplicaes deveriam poder se comunicar diretamente uns com os outros,
e no apenas por meio do comportamento de requisio/resposta que era suportado por sistemas de processamento de transaes.

Integrao de aplicaes empresariais Middleware de Comunicao


Chamadas de procedimento remoto (RPC).
Um componente de aplicao pode enviar uma requisio a um outro componente de aplicao executando uma chamada de procedimento local, que resulta no empacotamento de requisio como uma mensagem e em seu envio ao chamador; Da mesma forma, o resultado ser enviado de volta e devolvido aplicao como o resultado da chamada de procedimento.

Invocaes de mtodo remoto (RMI);


Uma RMI o mesmo que uma RPC, exceto que funciona com objetos ao invs de aplicaes.

Desvantagens da RPC e da RMI


Em ambos, o chamador e o chamado, necessitam estar ligados e em funcionamento no momento da comunicao; Eles necessitam saber exatamente como se referir um ao outro.

Middleware orientado a mensagem (MOM).


As aplicaes apenas enviam mensagens a pontos lgicos de contato; O middleware se encarrega de entregar todas as mensagens destinadas a uma aplicao.

Sistemas Distribudos Pervasivos


Sistemas decorrentes do uso de computao mvel e embutida, nas quais o comportamento esperado a instabilidade; Caractersticas:
Pequeno tamanho Alimentados por bateria; Comunicao sem fio.

Aspecto importante dos sistemas pervasivos:


em geral, os dispositivos se juntam ao sistema para acessar e possivelmente fornecer informaes.

Sistemas Distribudos Pervasivos


No possuem controle humano, podendo:
Adotar mudanas contextuais:
um dispositivo deve estar continuamente ciente do fato de que seu ambiente pode mudar o tempo todo. muitos dispositivos em sistemas pervasivos sero utilizados de modos muito diferentes por usurios diferentes.

administrativo

Incentivar composio ad hoc:

Reconhecer compartilhamento como padro

Exemplos:
Sistemas domsticos Sistemas eletrnicos para tratamento de sade Redes de sensores

Sistemas distribudos pervasivos Sistemas domsticos


So sistemas montados ao redor de redes domesticas, sendo compostos de um ou mais computadores pessoais Integram em um nico sistema, aparelhos de TV, equipamentos de udio e vdeo, dispositivos para jogos, Smart phones, PDAs, etc. Desafio: devem ser completamente autoconfigurveis e autogerenciveis.

Sistemas distribudos pervasivos Sistemas para tratamento de sade


Com o aumento do custo do tratamento mdico, esto sendo desenvolvidos novos dispositivos para monitorar o bem estar de indivduos e entrar automaticamente em contato com mdicos quanto necessrio. Meta importante: evitar que as pessoas sejam hospitalizadas.

Sistemas distribudos pervasivos Sistemas para tratamento de sade

Sistemas distribudos pervasivos Rede de Sensores


Consiste em dezenas a centenas de milhares de ns relativamente pequenos, cada um equipado com um dispositivo de sensoriamento. A maioria das redes de sensores utiliza comunicao sem fio, e os ns com frequncia so alimentados com bateria.
Gateway

N sensor

Sistemas distribudos pervasivos Rede de Sensores


Formas de organizao da rede de sensores como um banco de dados distribudo:
Armazenamento e processamento dos dados somente no site do operador:
Os sensores no cooperam; simplesmente enviam seus dados a um banco de dados centralizado, localizado no site do operador. As consultas so repassadas a sensores relevantes e permite-se que cada um processe uma resposta.. Isto requer que o operador agregue de modo sensato as respostas devolvidas.

Armazenamento e processamento dos dados somente nos sensores:


Nenhuma das soluo ideal.


A primeira requer que os sensores enviem pela rede todos os dados medidos, o que pode desperdiar recursos de rede e energia. A segunda soluo despreza as capacidades de agregao dos sensores que permitiriam o retorno de uma quantidade muito menor de dados ao site do operador.

Sistemas distribudos pervasivos Rede de Sensores

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.

S-ar putea să vă placă și