Buscar

Resumo P1 - Sistemas Distribuidos - ECO009

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CONSEQUÊNCIAS: concorrência, sem relógio global, falhas independentes. DESAFIOS: heterogeneidade e 
migração de código, sistemas abertos, segurança, escalabilidade, tratamento falhas, consistência, transparência
ARQUITETURA: Em camadas: flui de camada p/ camada. Camadas lógicas: plataforma: impl independente, baixo
nível hard e software mas alto nível interface programação, facilita coordenação entre processos. Middleware: 
mascara heterogeneidade, facilita comunicação entre processos(Java, rmi, corba). Camadas físicas: organização 
de serviço e aplicativo, enviar complexidade para nuvem. ESTILOS ARQUITETÔNICOS: Baseado em objeto: cada 
obj 1 componente, conexão entre compon feita chamada remota(métodos). Centrada em dados: processos 
comunicam por repositório comum, conexão msm. Baseado em eventos: comunicação propagação eventos,
 sistema publicar/subscrever, só recebe publicação quem subscreveu. Centralizadas: cliente-servidor(simplão). 
Centralizada multidivididas: 3níveis interface usuário, processamento e dados. Descentralizadas: peer2peer
-determinística, tabela hash distribuída(itens e nós recebem chave aleatória). P2p estruturadas e ñ
(alg aleatório, lista visinhos, superpares,+complicado). 
PROCESSOS: Thread:(ao invés de processos) paralelismo, permite q processos ñ sejam bloqueados. Cluster 
de servidores: conjunto máquinas c/ baixa latência e alta banda. Migração de código ocorre normalmente,
move processo p/ maquina c/ menor sobrecarga.COMUNICAÇÃO: é principal diferença entre SD(troca msg) 
e sist uniprocessados(memória compartilhada). Comunicação A e B: constrói msg dps executa chamada 
através rede, porem AeB devem concordar em volts p/ 0e1,msg corrompida etc PROTOCOLOS: Acordo sob 
como conexão é feita. Protocol em camada: CADA camada fornece e requisita serviços de camadas inferiores 
e sup. Nível físico: transmissão 0e1, volts p/ isso, bits por segundo,simultânea ou nos dois sentidos, tamanho 
e formato receptores, placa de rede. Nível enlace dados: detecta e trata erros de comunicação do físico, bits 
agrupados em quadros, calcula checksum(padrão bits inicio e fim) a cada quadro recebido(se checksum igual
 correto, se errado requisita novamente), ineficiente. Nível de rede: em rede local transmissor ñ precisa 
localizar receptor(msg na rede e receptor testa se é pra ele). rede longa dist existe nº grande máquinas e
 necessário rotas. Ex: IP(internet protocol). Nível de transporte: pacotes podem ser perdidos, função é tratar
 perda. Ex: TCP(orientado conex, confiável, sem pré rota, pacotes fora de ordem e software reordena) e 
UDP(contrário do tcp, mas mais veloz). Nível de sessão: não presente no TCP/IP, controla pontos sincronização. 
Ex:conexão a site com sup. A sessões(cookie) – identifica usuários. Nível de apresentação: reagrupar e
 estruturar informações, interpreta grupo de bits como string int etc. Nível de aplicação: protocolos alto nível
(comandos e interpretações). Ex: apache, email. Protocolo em camada: agrega cabeçados que causa overhead 
no des e empacotamento, rede longa distância pouco notado mas LAN gera sobrecarga, solução: Protocolo 
de requisição-resposta: estruturar SO como grupo de processos que cooperam entre si(servidores clientes, 
ordem n para m), request reply. Vantagens: simples eficiente. Se máquinas idênticas três níveis de
protocolo(físico e enlace de dados, request reply), sem conexão então sem camada 3e4. Necessita 2 chamadas
(send(destiny, &ptmsg), receive(endereço,&ptmsg)). REPRESENTAÇÃO EXTERNA DADOS: É o padrão para
representar estrutura de dados,est.d.dados dos processos devem ser serializadas antes da transmissão e 
reconstruídas na chegada. CORBA CDR, XDR, JAVA RMI. Serialização de objetos Java(rmi)(com objetos e 
valores passados como arg). XML
Arquitetura de objetos: característica fundamental objeto é encapsulamento de dados e operações, 
métodos disponíveis por interfaces, dados manipulados por métodos. Interfaces: especifica métodos 
disponíveis, isola arquitetura de sua implementação. Um objeto implementa várias interfaces(vice versa).
Cliente vincula a objeto por meio interface(Proxy). Objeto em tempo compilação: definido como instância, 
método +fácil,depende de ling dprogramação. Objeto tempo execução: implementação em aberto usando
adaptador de objetos. Objeto persistente: continua a existir(quando Server iniciado pode carregar último 
estado). Objeto transiente: só existe enquanto está no endereçamento do Server, execução encerrada 
deixa de existir. Enterprise Java Beans EJB: objeto Java hospedado em Server q oferece aos clientes 
remotos modos diferentes para invocar aquele objeto. BEANS-de sessão sem e com estado, de entidade, 
acionados por msg(publicar/escrever). Adaptadores de objetos: um Server pode suportar diversos 
objetos e precisa de adaptadores, não possuem detalhes das interfaces e podem ser genéricos. Cliente 
deve vincular(por Proxy) ao objeto antes de acessar métodos. Vinculação implícita(simples, métodos 
direto pela referência a objeto) e explícita(cliente utiliza função específica p/ vincular ao objeto). 
Referência simples contém end,porta e indicação de obj. Invocação estática(requer interface seja 
conhecida durante desenvolvimento cliente)e dinâmica(cliente faz invocação remota durante execução). |
Se objeto remoto é passado referência do obj como parâmetro. Se obj local é passado cópia. Consistência 
de entrada: qnd método em execução nenhum outro pode ser executado(acesso serializado). Tolerância a 
falha: básico é replicar obj em grupos de obj, grupo consiste em 1+cópias, utilizada ref específica p/ grupo. 
CORBA E JAVA RMI. Corba: arquitetura p/acesso prima idependência plataforma, utiliza IDL(Linguagem
 definição interface), exige espécie de Server especializado ORB(object request broker). RMI: + simples, 
exige somente tcp/ip e serviço de nomes de objetos(rmiregistry), é interface que permite comunicação 
entre obj, cada obj implementa 1interface, proposta programação distribuída com ling Java, 
mapeamento em JVM. RPC: Chamada procedimento remoto.
Web Service(WS). SOA(Service Oriented Architeture): Coleção serviços q podem se comunicar idependente 
plataforma e linguagem, acoplamento fraco, permite composição de serviços, serviços podem ser 
descobertos, utiliza padrões SOAP e REST(msg xml),WSDL(descrição serviço),UDDI(publicação serviço),JSON. 
Troca msg por XML/JSON, descreve operação a ser executada ou dados, permite diferentes SD executar em
 várias plataformas, integração c/ sistemas existente,serviços de negócio, protocolos abertos, ñ fica preso a 
middleware, reuso de serviço. QoS: geralmente a nível serviços SLA: disponibilidade custo tempo resposta 
reputação segurança. Composição de WebS: p/ gerar serviço complexo e integração, coreografia WS-CDL 
orquestração WS-BPEL. BPEL: fluxo de controle, variáveis, exec paral, manipulador erro. Composição 
automática de WebS: WS não possibilita, solução utilizar WS semânticos. ONTOLOGIA. RDF, OWL, OWL-S – 
possibilidade p/ encontrar serviços. REST: ou WS SOAP elimina complex no padrão WS, cada url 1 recurso, 
cada recurso diferenciável, SEM WSDL nem UDDI, retorno livre, GET POST PUT DELETE. JSON: fácil ler, 
formato texto. WebS x Obj Distr: WS associados a protocolo comum(smtp,HTTP),utilizado amplamente,
xml baixo desempenho . Obj Dist projetado para rede interna e protocolos próprios, empresas(software 
grande e complexo),padrões binários aumenta eficiência. Grades computacionais: designa middlewares 
p/ permitir compartilhar recursos. Cloud computing. Software-as-a-Service(SaaS)-paga por serviço, 
Platform-as-a-Service(PaaS)-contratar serviço(nuvem). Infrastructure-as-a-Service(IaaS)-recursos ou 
armazenamento dados. 
Sincronização: há desvio(diferença) no clock. Sincronização em sist síncrono: emissor envia tempo t, 
receptor configura relógio em t. Método de Cristian: Máquinas possuem receptor WWV(tempo por GPS).Método Berkeley: sem WWV, servidor de tempo ativo e requer o relógio de cada maquina, calcula 
média p/ ajustar, se nó mestre falhar outro assume. Network Time Protocol(NTP): cristian e Berkeley são 
intranet, NTP usa internet, sincronização multicast, estima compensação para erros/atrasos. Se processos 
ñ interagem ñ falha por sincronização. Importante é que processos concordem na ordem que eventos 
ocorrem-happens-before(a → b), eventos concorrentes(diferentes processos)

Outros materiais