You are on page 1of 52

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

PR

INTRODUO AOS SISTEMAS DISTRIBUDOS

Prof. Cesar Augusto Tacla


http://www.dainf.ct.utfpr.edu.br/~tacla/EspSD/

Sumrio

1. INTRODUO
a. b. c. d. Definio de sistemas distribudos (SDs) Exemplos de sistemas distribudos Tipos de aplicaes distribudas Vantagens e dificuldades dos SDs

Sumrio

1a
Definio de sistemas distribudos

Definio O que um sistema distribudo?

Rede de Comunicao

Definio

Um sistema distribudo uma coleo de computadores autnomos conectados por uma rede de comunicao que percebida pelos usurios como um nico computador que prov um servio ou resolve um problema. (Tanenbaum & Steen, 2002)

Esta definio faz referncia a um conceito importante em sistemas distribudos, o da transparncia

Definio

Um sistema distribudo composto por computadores conectados em rede (hardware e software) que se comunicam e coordenam suas aes somente atravs do envio de mensagens. (Coulouris et al., 2001)

Sumrio

1b
Exemplos de sistemas distribudos

Exemplo 1: WEB

intranet ISP

WEB: Acesso remoto a pginas FTP: Transferncia de arquivos EMAIL


backbone

satellite link desktop computer: server: network link:

Fonte: figura 1-1 (Coulouris et al., 2003)

ISP: Internet Service Provider = provedor de acesso


8

SISTEMA BANCRIO

Exemplo 2: Bancos
Caixas automticos BD banco 1 BKP BD banco 1
BD = banco de dados BKP = backup

Caixas automticos

BD banco 2

BKP BD banco 2

Fonte: http://www.ida.liu.se/~TDDB37/lecture-notes/lect1.frm.pdf

10

Aspectos importantes num sistema distribudo bancrio: Acessos mltiplos (concorrentes) mesma conta:
vrios usurios acessam a mesma conta ou um sistema do banco (emisso de relatrios) acessa ao mesmo tempo em que usurios realizam transaes.

Transaes bancrias podem envolver contas armazenadas em diferentes bancos de dados ou localidades.

11

O servio deve ser transparente ao usurio no interessa se os dados de sua conta esto armazenados no banco 1 ou banco 2, a aplicao no deve em nenhum momento deixar transparecer aspectos internos do sistema O servio deve ser confivel (no deixa os objetos em estados inconsistentes) e seguro Bases de dados replicadas devem ser consistentes. Bases de dados replicadas: aumentam a tolerncia a falhas, mas podem tornar o sistema no confivel! Tolerncia a falhas
12

NAPSTER E SIMILARES

13

Exemplo 3: Napster

usurio

Servidor NAPSTER

usurio

Requisio de MP3

Anncio

usurio

Transferncia de arquivo

usurio

14

Outros Exemplos Similares ao NAPSTER


EMULE BITORRENT SKYPE (VoIP) MSN MESSENGER, YAHOO

Outros
APLICAES DE MULTIMDIA WEB conferncia Difuso de streams on-line (voz, vdeo)

15

CLUSTER

16

Exemplo 4: Cluster (1) CLUSTERS ou AGRUPAMENTOS Mquinas conectadas por rede de alta velocidade Necessidade de alto desempenho computacional Evitar custo de mquinas de alto desempenho Objetivo: compartilhar recursos computacionais
De processamento De armazenamento De memria Outros

17

Exemplo 4: Cluster (2)


JAGUAR Cluster de mquinas do Oak Ridge National Laboratory (EUA)
Terceiro da lista dos TOP 500 SUPERCOMPUTERS INSTALADO EM 2009 224.162 CORES 1.759.000 Gflops FONTE http://www.top500.org/list/2010/06/100 Acesso em 20/9/2011

Soluo: agrupamento fsico de mquinas de menor porte = cluster: mesmo espao geogrfico Normalmente dentro da mesma organizao, com software/hardware homogneos

Perdeu 1a posio em 2010 para o Tianhe-1 186.368 cores 2.566.000 Gflops Tianhe perdeu 1a posio em 2011 para o RIKEN 548.352 cores 8.162.000 Gflops

18

Exemplo 4: cluster (3) Clusters so utilizados para... Aumentar a disponibilidade de servio


se um nodo falha, outro assume

Equilibrar carga de trabalho


um ou mais computadores do cluster atuam como distribuidores da carga entre os demais

Alto desempenho
Para resolver tarefas complexas que podem ser decompostas em sub-tarefas, cada uma rodando num nodo do cluster. Google Donates One Billion Core-Hours to Science

19

GRID OU GRADE

20

Exemplo 5: Grid (1) GRID ou GRADE = as mquinas encontram-se distantes geograficamente.

uma cooperativa de mquinas


no pertencem necessariamente a mesma organizao! so ditas organizaes virtuais no h administrao central dos recursos computacionais Utilizao de protocolos/padres abertos Quando as mquinas no pertencem a uma organizao, alguns denominam esta forma de computao de volunteer computing

21

Exemplo 5: Grid (2) Aplicaes


Tarefas complexas decompostas Reunio dos resultados parciais Distribuio das tarefas pode ser feita em funo de disponibilidade dos recursos, capacidade, desempenho, custo e QoS

Exemplos de grids de pesquisa


Laboratrio Nacional de Computao Cientfica: http://portalvcg.lncc.br/ Campina Grande: http://ourgrid.org

22

Exemplo 5: Grid (3) Exemplos participao de qualquer usurio final


Primeiro projeto (1996): GIMPS MERSENNE PRIME SEARCH busca pelo maior nmero primo de Mersenne (matemtico/monge francs) http://www.mersenne.org/ World Community Grid: http://www.worldcommunitygrid.org Identificar quais defeitos em protenas produzidas pelos genes humanos podem causar doenas Utiliza BOINC TeraGrid da universidade de Purdue (www.teragrid.org) Foi encerrado aps 10 anos (acesso em 20/9/2011) Substitudo pelo projeto XSEDE - the Extreme Science and Engineering Digital Environment em www.xsede.org

23

Continuao
BBC Climate Change Experiment: http://climateprediction.net/ Tentativa de prever o clima para o sculo 21 Utiliza BOINC Introduo (com Flash): http://www.gridcafe.org/multimedia.html

24

CLUSTER X GRID

25

CLUSTER X GRID CLUSTER: conjunto de mquinas dedicadas GRID: aproveitamento de recursos de mquinas ociosas
De uma organizao De voluntrios

Tanto clusters como grids necessitam de software para gerenciamento de carga:


Beowulf cluster - http://www.beowulf.org/overview/index.html Condor - http://www.cs.wisc.edu/condor/ BOINC - http://boinc.berkeley.edu/

26

Softwares para gerenciamento de carga

JOB SUBMETIDO PELO USURIO

WORKLOAD MANAGEMENT SOFTWARE

CLUSTER OU GRID

27

Responder as questes de 0010-TAR1-GridCluster-questoes.txt


http://www.dainf.ct.utfpr.edu.br/~tacla/EspSD/Aula1/0011-TAR1-GridCluster-questoes.txt

28

Sumrio

1c
Tipos de aplicaes distribudas resoluo distribuda sistemas multiagentes

29

RESOLUO DISTRIBUDA

30

RESOLUO DISTRIBUDA
Resoluo distribuda de problemas
Um usurio deseja resolver um problema complexo (ex. renderizao de imagens complexas) Decomposio de um problema em subproblemas pelo desenvolvedor de modo top-down Distribuio dos subproblemas para diferentes processos Um dos processos coleta e monta o resultado final

T1

T1.1

T1.2

T1.3

31

RESOLUO DISTRIBUDA

Sistemas Distribudos/UTFPR Prof. Cesar Augusto Tacla

32

RESOLUO DISTRIBUDA

Tempo

Renderman da Pixar https://renderman.pixar.com/index.html Filme 2 minutos 30 frames por segundo 7.200 minutos de renderizao

No Distributed Render Environment (Grid da Universidade de Purdue): Filme 2 minutos 30 frames por segundo 36 minutos de renderizao
Fonte http://www.i-light.org/docs/IPgrid_fn_report.doc (TeraGrid Purdue)

33

SISTEMAS MULTIAGENTES

34

SMA

Sistemas multi-agentes
so sistemas abertos e heterogneos onde vrios desenvolvedores desenvolvem agentes,

Agentes
so software dotados de um certo grau de inteligncia e, principalmente, de interao com outros agentes, capazes de interagirem e produzirem algum resultado til ao usurio embora no tenha sido concebidos inicialmente com aquele objetivo especfico.
Fonte: http://www.pcs.usp.br/~jaime/papers/marietto_iberamia02_p.pdf

35

Exemplo integrao de servios

36

SMA
Em sistemas multiagentes, o foco na interao entre agentes (competio ou colaborao); i.e. soluo surge atravs da interao Ex. leilo, simulaes sociais Para simulaes sociais, um bom incio a ferramenta de simulao NETLOGO
http://www.ncc.furg.br/wesaac2010/wesaac2010-slides-rocha.pdf

Sistemas peer-to-peer so similares aos SMAs, h diferenas conceituais nos modelos de arquiteturas. SMA tem inspirao em modelos sociolgicos e cognitivos Ex. arquitetura BDI

37

PEER-TO-PEER

P2P
As vezes, citada como uma arquitetura, porm, conceitualmente mais do que isto! Preconiza a igualdade entre os participantes no h servidor, nem cliente todos so iguais. A rede dos participantes. Vide manifesto:
http://www.realitysandwich.com/the_peer_peer_manifesto_the_emergence_p2p_civilization_and_political_economy

Exemplo de sistemas GNUTELLA (precursor) SNEER (http://sneer.me/)

38

Sumrio

1d
Vantagens e dificuldades dos SDs

39

Motivaes Razes para construir um SD


Desempenho MAIOR DO QUE sistema centralizado Distribuio natural das aplicaes: bancrias, videoconf., etc. Robustez: frente a falhas Escalabilidade: sist. pode ser aumentado sem perda de desempenho? Compartilhamento de recursos Impressoras e outros hardwares Arquivos (inclusive pginas Web) CPU Memria Espao em disco dados

40

Dificuldades O desenvolvimento de um sistema distribudo mais complexo do que um centralizado


HETEROGENEIDADE ABERTOS SEGUROS ESCALVEIS CONFIVEIS CONCORRNCIA TRANSPARNCIA

Sistemas Distribudos/UTFPR Prof. Cesar Augusto Tacla

41

Exemplo Baseando-se no exemplo da aplicao bancria mostrada no incio destes slides e considerando que:
H acessos mltiplos (concorrentes) mesma conta; Transaes bancrias podem envolver contas armazenadas em diferentes bancos de dados (BD); No interessa ao cliente se os dados de sua conta esto armazenados no BD1 ou BD2

pode-se concluir que as caractersticas importantes para este tipo de sistema so... (> prximo)

42

Exemplo
Acessos mltiplos (concorrentes) mesma conta: vrios usurios acessam a mesma conta ou um sistema do banco (emisso de relatrios) acessa ao mesmo tempo em que usurios realizam transaes. Transaes bancrias podem envolver contas armazenadas em diferentes bancos ou localidades. O servio deve ser transparente ao usurio no interessa se os dados de sua conta esto armazenados no banco de dados 1 ou 2, a aplicao no deve em nenhum momento deixar transparecer aspectos internos do sistema O servio deve ser confivel e seguro Bases de dados replicadas devem ser consistentes (no apresentar dados conflitantes) Tolerncia a falhas
43

HETEROGENEIDADE Lidar com diferentes


Redes hardwares (computadores) sistemas operacionais Linguagens de programao
Alm de resolver os problemas de heterogeneidade, o middleware define um modelo computacional uniforme para a programao de aplicaes distribudas. APLICAO DISTRIBUDA MIDDLEWARE PROTOCOLOS SIST. OPER. HARDWARE PROTOCOLOS SIST. OPER. HARDWARE RMI RPC CORBA PLATAFORMA

44

ABERTOS O grau de abertura de um SD depende de:


Facilidade de adicionar novos recursos De hardware De software: novos servios ou re-implementao de antigos SD abertos baseiam-se em: Mecanismos de comunicao uniformes
Especificados por organismos tais como OMG e IETF Ex. CORBA (OMG)

Publicao de interfaces de servios: para esconder a heterogeneidade de implementao dos servios, as implementaes devem aderir a uma forma de publicar as interfaces dos servios

45

SEGURANA Segurana envolve:


selar informaes importantes enviadas atravs da rede (ex. criptografia de nmero de carto de crdito) Identidade: garantir a autenticidade da fonte. Ex. um mdico deseja acessar dados de pacientes de forma remota. preciso assegurar que o usurio realmente o mdico. Ex. um usurio deseja comprar um livro pela Internet. preciso assegurar a identidade da loja virtual - que realmente uma loja e no vai fazer mal uso do carto. Problemas : Indisponibilidade de servio devido a ataques Segurana de cdigo mvel (ex. .exe anexados a emails, applets)

46

ESCALABILIDADE Um SD escalvel se, ao adicionarmos novos recursos e/ou usurios, seu desempenho permanece satisfatrio. Exemplos:
Endereos IPv4 de 32 bits => IPv6 128 bits DNS, no incio, era uma tabela => foi particionada e tratada localmente contendo replicaes.

Tcnicas para garantir escalabilidade:


Replicao de dados Caching Replicao de servios

47

Tratamento de falhas Falhas so normalmente parciais em SDs


Dificilmente todos os componentes falham simultaneamente

Deteco
Mensagens corrompidas => checksum Crash de um servidor => nunca certo se o servidor caiu, se a falha est no link ou se a rede est sobrecarregada

Esconder falhas
Se uma mensagem no chega no destino => retransmisso Dados podem ser escritos em dois discos, se um est danificado, utiliza-se a cpia.

48

Tratamento de falhas (2) Tolerncia a falhas


Exemplo: quando um navegador da Internet no consegue acessar um servidor ele no prende o usurio indefinidamente.

Como tornar um sistema tolerante a falhas?


Redundncia pode tornar sistema tolerante a falhas Replicao de dados No servio DNS cada entrada replicada em pelo menos dois servidores Explorar rotas alternativas na Internet

Maior tolerncia a falhas aumenta a disponibilidade do sistema

49

Transparncia O sistema deve ser visto pelo usurio e pelo programador como um todo e no como uma coleo de componentes Vrios tipos de transparncia
Acesso: recursos locais e remotos so acessados atravs de operaes idnticas Localizao: permite acessar um recurso sem conhecimento de sua localizao (ex. pela URL e no pelo IP) Replicao: mltiplas instncias de um recurso podem ser utilizadas sem que isto seja explcito para usurios e programadores

50

TRANSPARNCIA
Vrios tipos (cont)
Concorrncia: vrios processos podem acessar o mesmo recurso sem interferir na utilizao um do outro nem no recurso.
Ex: sistema de telefonia celular (emissor)

Mobilidade: permite a movimentao de recursos e clientes dentro de um sistema sem afetar a operao

51

RESUMO SISTEMAS DISTRIBUDOS SO TEIS PARA Melhorar desempenho Melhor adaptados a distribuio natural dos elementos

Porm so complexos so inerentemente concorrentes devem ser confiveis devem ser transparentes funcionar em plataformas heterogneas

Middlewares resolvem parte destes problemas


52

You might also like