Baixe o app para aproveitar ainda mais
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)
Compartilhar