Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes



Documentos relacionados
Sistema centralizado O Paradigma Cliente/Servidor

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

SISTEMAS DISTRIBUIDOS

Sistemas Distribuídos

Modelos de Arquiteturas. Prof. Andrêza Leite

Modelos Fundamentais. Carlos Ferraz.

Aula 03-04: Modelos de Sistemas Distribuídos

Modelos Arquiteturais

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Capítulo II Modelos de Programação Distribuída (parte 2)

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.

Desenvolvimento Cliente-Servidor 1

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Cliente/Servidor. Conceitos Gerais. Graça Bressan. Graça Bressan/LARC

Introdução ao Modelos de Duas Camadas Cliente Servidor

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite

Sistemas Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos

Distributed Systems Concepts and Design

Revisão. Karine Peralta

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Modelos de Sistemas Distribuídos. . Requerimentos de Projeto para Arquiteturas Distribuídas

Sistemas Cliente-Servidor

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Sistemas Distribuídos


UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Padrões Arquiteturais e de Integração - Parte 1

Paradigma Cliente/Servidor


Distributed Systems Principles and Paradigms

Sistemas Distribuídos

Introdução. Sistemas Distribuídos. Mas, o que é um sistema distribuído? Seriamente. Professor: Paulo Jorge Marques. Professora Práticas: Pinki Meggi

Considerações no Projeto de Sistemas Cliente/Servidor

Rede de Computadores (REC)

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes.

Sistemas Distribuídos

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Sistemas Distribuídos. Introdução

Sistemas Distribuídos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

UNIVERSIDADE. Sistemas Distribuídos

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos

Capítulo 8 - Aplicações em Redes

CST em Redes de Computadores

Aplicativo Cliente/Servidor multicamadas para controle de uma rede de lojas via web utilizando Java

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Ciência de Computadores Sistemas Distribuídos e Móveis

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc.

Sistemas Distribuídos. Modelos Arquiteturais

Profs. Deja e Andrei

REDES DE COMPUTADORES

Redes. Pablo Rodriguez de Almeida Gross

Redes de Computadores e suas classificações. Maurício Severich

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Carlos Ferraz

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Sistemas Distribuídos

TECNOLOGIA WEB INTERNET PROTOCOLOS

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

Sistemas Operacionais 2014 Introdução. Alexandre Augusto Giron

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Visão do Usuário da DSM

Sistemas Distribuídos (DCC/UFRJ)

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Operacionais

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Cap 03 - Camada de Aplicação Internet (Kurose)

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão


Comunicando através da rede

Redes de Computadores Aula 3

Capítulo 7 CAMADA DE TRANSPORTE

UFG - Instituto de Informática

MODELO CLIENTE SERVIDOR

Sistemas Distribuídos

A Camada de Transporte

Transcrição:

Arquiteturas e Modelos de sistemas Arquitetura Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes Localização dos componentes e relação entre eles Objetivo: garantir que a estrutura atenda as demandas presentes e futuras Interesse: tornar o sistema confiável, gerenciável e adaptável a um custo razoável 2

Sistema centralizado Computador central (mainframe) + conjunto de terminais + recursos centralizados recursos mainframe terminais 3 Sistema distribuído Grupo de computadores + suporte de comunicação + recursos compartilhados recursos C1 C2 C3 rede 4

Relações entre entidades Peer-to-peer (não hierárquico) cooperação A A Filtros A dados B dados C pedido Cliente/servidor C resposta S 5 O paradigma cliente/servidor O servidor: oferece um serviço aos clientes passivo: responde aos pedidos dos clientes efetua um processamento específico O cliente: ativo: submete pedidos ao servidor implementa a interface com o usuário O servi O serviço: constitui o contrato entre as partes 6

Camadas de serviço de software e hardware Aplicativos e serviços Middleware Sistema operacional Plataforma Hardware do computador e rede 7 Middleware Objetivo: mascarar a heterogeneidade fornecer um modelo conveniente de programação Infra-estrutura para: Execução (sistema operacional) Comunicação (protocolos) Gerenciamento (ferramentas de suporte) 8

Middleware Presente no servidor E cliente (processos e objetos) Baseado em padrões abertos Funções comuns: invocação remota de métodos, comunicação de grupo, notificação de eventos, replicação de dados, transmissão em tempo real, transmissão segura etc Limitações: depende de verificações e mecanismos de correções de erros e segurança em vários níveis (inclusive no espaço de endereçamento da aplicação) 9 Arquitetura cliente/servidor Usuário Cliente Máquina A Serv. A Máquina B Serv. B Middleware resposta pedido Middleware Suporte de comunicação 10

Características dos sistemas C/S Contrato entre cliente e servidor Encapsulamento do serviço Comportamento assimétrico Transparência de localização Independência de plataforma Interações por mensagens Escalabilidade horizontal e vertical 11 Vantagens dos sistemas C/S Melhor relação preço/desempenho equipamentos mais baratos Maior facilidade de expansão expansão incremental dos serviços É possível adotar soluções abertas integrar soluções de diferentes fabricantes Menor impacto das falhas falhas afetam somente parte do sistema mais fácil replicar servidores 12

Desvantagens dos sistemas C/S Software mais complexo é preciso quebrar a aplicação em partes Problemas de saturação da rede Maior dependência do meio de comunicação interações devem ser bem projetadas Aspectos de segurança mais críticos dados confidenciais circulam na rede necessidade de criptografia 13 Nível: aplicação ou sistema? C/S ao nível de aplicação Aplicação Sistema Hardware Aplicação Sistema Hardware C/S ao nível de sistema Aplicação Sistema Hardware Sistema Hardware 14

Clientes invocando servidores individuais Modelo Cliente-servidor Client invocation invocation Server result Server result Client Key: Process: Computer: 15 Um serviço fornecido por múltiplos servidores Service Client Server Server Client Server 16

Servidor proxy Client Proxy server Web server Client Web server 17 Uma aplicação distribuída baseada em processos pares Application Coordination code Application Coordination code Application Coordination code 18

Sistemas cliente/servidor típicos Servidores de arquivos/impressão cliente cliente Acessos a arquivos Jobs de impressão servidor 19 Sistemas cliente/servidor típicos Servidores de bancos de dados cliente cliente Chamadas SQL servidor DBMS 20

Sistemas cliente/servidor típicos Servidor de cálculo (Unix / X-Windows) Cliente de cálculo Servidor gráfico X-Protocol (saída gráfica) Servidor de cálculo Cliente gráfico terminal (comandos) 21 Sistemas cliente/servidor típicos Servidores de WWW cliente java HTTP servidor HTML HTML HTML cliente CGI HTML aplicação 22

Sistemas cliente/servidor típicos Arquivos cliente Cálculo Segurança Impressão E-mail NIS DHCP FTP WWW News Groupware Bootp DNS Específicos 23 Variações do modelo clienteservidor Algumas variações do modelo cliente-servidor podem ser construídas considerando: uso de código móvel e agente móveis necessidades dos usuários por computadores de baixo custo com hardware limitado requisitos para adicionar e remover dispositivos móveis de maneira conveniente 24

Applets Web a) client request results in the downloading of applet code Client Applet code Web server b) client interacts with the applet Client Applet Web server 25 Applets Web Quando o usuário seleciona o link para o applet, o código é transmitido para o browser e o cliente e executado aí. Vantagem: maior interação pois não sofre com os atrasos da rede e a variação da banda. 26

Agentes móveis Agente móvel é um programa (código e dados) que viaja de um computador para outro da rede cuidado de uma tarefa determinada por um usuário. Um agente móvel pode fazer invocações de recursos locais. O uso do agente pode diminuir o tráfego de dados na rede. Os agentes móveis podem ser uma ameaça potencial aos recursos dos computadores que eles visitam. O ambiente que recebe o agente deve decidir quais os recursos que o agente pode acessar. 27 Características do cliente Estreita relação com o usuário Pode acessar diversos servidores Interface gráfica usual ou a objetos Sistema operacional leve e flexível Win 95/NT, OS/2, MacOS, JavaOS,... Browser Web: o cliente universal! 28

Características do servidor Processamento especializado Pode servir clientes simultâneos controle de concorrência Sistema operacional robusto Unix, Windows NT/2k,... Mainframe + protocolos abertos Servidores replicados Versatilidade em comunicação Atender clientes com vários protocolos 29 Características do middleware Suporte às interações entre clientes e servidores: Protocolos de transporte: TCP/IP, NetBIOS, IPX/SPX, SNA,... NOS -Network Operating Systems: mensagens, RPC, segurança, arquivos,... DSM -Distributed System Management: SNMP, CMIP, NIS, SMS,... Suporte a serviços específicos: HTTP, IIOP, SMTP, ODBC,... 30

Clientes gordos ou magros? Aplicação: GUI + lógica + dados Onde separar cliente e servidor? Fat Server : lógica no servidor Fat client : lógica no cliente Fat client Thin server GUI Lógica Dados Thin client Fat server 31 Clientes gordos ou magros? GUI Cliente GUI Lógica Dados Arquivos Bancos de dados Servidor Lógica Dados Transações WWW 32

Gordos X Magros Cliente gordo: menos processamento para o servidor possivelmente mais tráfego na rede cliente é mais sensível a mudanças Cliente magro: mais processamento no servidor menos tráfego na rede manutenção mais simples 33 2-Tiers X 3-Tiers 2-tiers: cliente e servidor 3-tiers: cliente, lógica e servidor Uso ambíguo ao longo do tempo: PCs Servidores departamentais Servidores corporativos Cliente Banco de dados local Banco de dados corporativo Cliente Servidores de aplicação Servidores de bcos de dados t 34

Arquitetura 3-tiers Separação completa: cliente: interface com o usuário aplicação: lógica do negócio dados: informações armazenadas cliente servidor de de aplicação servidor de de dados A servidor de de dados B 35 WWW: uma arquitetura 3-tiers típica browser HTML docs OLTP CGI HTTP WWW server CGI RDBMS OODBMS CGI Groupware cliente aplicação dados 36

Modelos Fundamentais Questões respondidas pelo modelo: Quais as entidades do sistema? Como estas interagem? Quais características afetam o comportamento individual e coletivo? Objetivo de um modelo: Com base nos requisitos; prever o que será possível/impossível, viável/inviável. Prever e explicitar condições relevantes 37 Modelos Fundamentais Modelo de interação Fatores relevantes: Desempenho dos canais de comunicação Banda, atraso, jitter, perda Eventos dependentes do tempo e relógios dos computadores Sincronização por GPS Variantes do modelo de interação Sistemas Distribuídos Síncronos Sistemas Distribuídos Assíncronos Ordenação de eventos 38

Modelo de Interação - Ordenação de eventos X send 1 m 1 receive 4 receive Y 2 receive send 3 m 2 receive Physical time Z receive receive send A m 3 m 1 m 2 receive receive receive t 1 t 2 t 3 39 Modelos de falhas Falhas: Em processos No canal de comunicação process p send m process q receive Outgoing message buffer Communication channel Incoming message buffe 40

Modelos de falhas Classe da falha Afeta Descrição Falha e pára Processo Processo para e permanece neste estado. Outros proc detectam o estado através de temporizadores. Falha Processo Processo para (capota) e permanece neste estado. Ou processos NÃO detectam o estado Omissão Canal Uma mensagem inserida no buffer de saída do canal nunca chega a seu destino Omissão no receptor Arbitrário (Byzantine) Processo O host recebe a mensagem, mas esta não chega até o. processo Processo Comportamento arbitrário Canal 41 Modelos de tempo Classe de Afeta Descrição falhas Relógio Processo Relógio local do processo excede limites na diferença em relação ao relógio real. Desempenho Processo Processo excede limite no intervalo entre dois passos no processamento. Desempenho Canal A transmissão da mensagem demora mais que o limite definido. 42

Modelos de segurança Proteção de objeto: Permissão de acesso invocação Direitos de acesso Objeto Cliente resultado Servidor Rede 43 Modelos de segurança O Inimigo Ataques a servidores Ataques a clientes Ataques aos canais Cópia de m Processo p m O inimigo m Processo q Canal de comunicação 44

Modelos de segurança Proteção do canal de comunicação Criptografia Autenticação Processo p Canal seguro Processo q 45 Exercícios 1. Descreva e ilustre a arquitetura cliente-servidor de 1 ou mais aplicações importantes da Internet (por exemplo, Web ou email). 2. Para as aplicações do exercício anterior, como os servidores cooperam para fornecer o serviço? 3. Ainda com relação à aplicação do exercício 1, como é tratado o particionamento e/ou replicação dos dados entre os servidores? 4. Um serviço de busca é um servidor web que responde a requisições de clientes para pesquisar em seus dados e concorrentemente executa diversos web crawlers que criam e atualizam os dados armazenados. Quais são os requisitos para a sincronização entre estas atividades concorrentes? 46

Exercícios 5. Liste os tipos de recursos locais que estão vulneráveis ao ataque por parte de um programa não-confiável que foi trazido de uma máquina remota e é executado localmente. 6. Dê alguns exemplos de falhas no hardware e software que podem/não-podem ser toleradas pelo uso de redundância em um sistema distribuído. 7. Considere um servidor simples que trata requisições de cliente sem acessar outros servidores. Explique porque normalmente não é possível definir um limite para este servidor responder a uma requisição de um cliente. 47 Bibliografia Distributed Systems: concept and design G. Coulouris, J. Dollimore e T. Kindberg 3.ed., Addison-Wesley, 2001 The Essential Client/Server Survival Guide R. Orfali, D. Harkey e J. Edwards 2.ed., John Wiley, 1996 48