Considerações no Projeto de Sistemas Cliente/Servidor



Documentos relacionados
UNIVERSIDADE. Sistemas Distribuídos

MODELO CLIENTE SERVIDOR

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

Tipos de Servidores. Servidores com estado

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

REDES DE COMPUTADORES

Introdução ao Modelos de Duas Camadas Cliente Servidor

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

Um Driver NDIS Para Interceptação de Datagramas IP

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


Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

Sistemas Distribuídos

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)

SISTEMAS DISTRIBUIDOS

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

INTERNET = ARQUITETURA TCP/IP

Permite o acesso remoto a um computador;

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

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

Um pouco sobre Pacotes e sobre os protocolos de Transporte

Sistemas Cliente-Servidor

Distributed Systems Principles and Paradigms

ESTUDO DE CASO WINDOWS VISTA

MÓDULO 8 Modelo de Referência TCP/IP

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Capítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento. Associação dos Instrutores NetAcademy - Julho de Página

Capítulo 7 CAMADA DE TRANSPORTE

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

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

CAMADA DE TRANSPORTE

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Rede de Computadores

Relatorio do trabalho pratico 2

Redes de Computadores

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

SISTEMAS OPERACIONAIS

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de Página

Redes de Computadores


A Gerência em Redes de Computadores

Redes de Computadores. Prof. Dr. Rogério Galante Negri

OURO MODERNO Web Designer APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

Manual de Instalação ( Client / Server ) Versão 1.0

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

Redes de Computadores (PPGI/UFRJ)

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

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

4 Um Exemplo de Implementação

Introdução à Redes de Computadores

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Comunicação entre Processos

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

Interconexão de redes locais. Repetidores. Pontes (Bridges) Hubs. Pontes (Bridges) Pontes (Bridges) Existência de diferentes padrões de rede

Sistemas Distribuídos

Sistemas Distribuídos

Informática I. Aula Aula 22-03/07/06 1

SISTEMA GERENCIADOR DE BANCO DE DADOS

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

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

Arquitetura dos Sistemas de Informação Distribuídos

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

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

WINDOWS NT SERVER 4.0

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Sistemas Distribuídos

Capítulo 8 - Aplicações em Redes

Guia para atualização de Firmware dos consoles CL5, CL3 e CL1. (Firmware 1.51)

Redes. Pablo Rodriguez de Almeida Gross

Internet - A rede Mundial

GT-VOIP Relatório I.9: Avaliação do Ambiente Sphericall da Marconi. Setembro de 2002

REDES DE COMPUTADORES

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

Segurança em Sistemas de Informação

Paradigma Cliente/Servidor

4 Estrutura do Sistema Operacional Kernel

AULA Redes de Computadores e a Internet

Redes de Computadores. Trabalho de Laboratório Nº7

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Adriano Reine Bueno Rafael Barros Silva

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

Máscaras de sub-rede. Fórmula

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Redes de Computadores. Camada de Transporte

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

CAMADA DE REDE. UD 2 Aula 3 Professor João Carneiro Arquitetura de Redes 1º e 2º Semestres UNIPLAN

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

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

A Camada de Transporte

9. Quais as características a tecnologia de conexão à Internet denominada ADSL A) Conexão permanente, custo variável, linha telefônica liberada e

Aula 6 Modelo de Divisão em Camadas TCP/IP

Aula 3. Objetivos. A internet.

Transcrição:

Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1

Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis desde que observadas as necessidades específicas de ambientes cliente/servidor. Consideremos as seguintes etapas do ciclo de vida do projeto: Análise Projeto Implementação Teste Manutenção Análise de Sistemas Cliente/Servidor De entrevistas com o cliente e sessões JAD (Joint Application Development) devem ser definidos os documentos com os requisitos do sistema. Analisar as aplicações existentes, para verificar necessidades de integração com sistemas legados, e o compromisso com as plataformas a serem preservadas. Projeto de Sistemas Cliente/Servidor A partir dos requisitos do sistema devem ser definidas as tecnologias a serem utilizadas, a lógica de apresentação (GUI), distribuição da aplicação entre cliente e servidor e a distribuição dos dados. Considerações no Projeto de Sistemas Cliente/Servidor Definição dos padrões a serem utilizados. Definição do hardware, software, tecnologia de comunicação e dos protocolos de rede que serão utilizados. Particionamento funcional da aplicação cliente/servidor, isto é, definir quanta lógica será colocada no cliente e no servidor. Como será feita a interação entre cliente e servidor: mecanismos de comunicação entre cliente e servidor. Para isto deve ser definida um protocolo de aplicação entre cliente e servidor. Definir a distribuição de dados lembrando que os dados devem ficar próximos ao local onde serão utilizados na maioria das vezes para Graça Bressan/LARC 2000 2

minimizar as transferências e melhorar o tempo de resposta. Qual a segurança e políticas de acesso necessárias. Como será feito o tratamento e recuperação de erros. Considerar sempre o caso em que a comunicação é interrompida. O processamento deve ser síncrono ou assíncrono. Implementação de Sistemas Cliente/Servidor Definir as metodologias e ferramentas a serem utilizadas. Pode ser utilizada a programação convencional ou orientada a objetos. A escolha da linguagem de programação deve levar em conta as flexibilidades e facilidades de implementação em múltiplas plataformas. Deve ser feita a escolha das bibliotecas de classes que são particularmente úteis na implementação das GUIs e OOUIs da comunicação entre cliente e servidor. Testes de Sistemas Cliente/Servidor Os testes consistem em verificar se o sistema funciona corretamente segundo o que foi definido pelos requisitos do projeto Os testes em geral são conduzidos em duas etapas: Testes isolados Testes integrados. Testes Isolados de Sistemas Cliente/Servidor Do lado cliente pode ser testada a interface com o usuário e simulada a comunicação com o servidor. Do lado servidor podem ser exercitados os diversos serviços implementados através de simulação de requisições de clientes. Testes Integrados de Sistemas Cliente/Servidor Verificar o funcionamento em caso normal e na presença de erros. Deve ser dada atenção aos casos de falha de comunicação. Verificar o desempenho do sistema quanto a tempo de resposta e ao volume (vazão) de requisições processadas por unidade de tempo. Considerar os casos de carga normal e nos limites de carga (baixa e alta). Graça Bressan/LARC 2000 3

Verificar a segurança do sistema. Verificar a qualidade do projeto: código, manuais, Help, documentação Manutenção de Sistemas Cliente/Servidor Correção de problemas resultantes de falha de implementação ou situações não previstas nos requisitos. Mudanças de configuração de parâmetros do sistema necessárias à melhoria do desempenho em razão de mudanças da carga. Adaptações necessárias para compensar alterações nas configurações de hardware, software ou rede. O ambiente cliente é o mais sujeito a mudanças tais como atualização de versão do sistema operacional. Solicitações dos usuários por novas funcionalidades. TCP/IP e Implementação Cliente/Servidor O TCP/IP é um protocolo que apresenta as características necessárias à programação Cliente Servidor. A programação pode ser feita através de: API de programação, tal como a de sockets, para acesso à camada de transporte. RPC que é um mecanismo de programação para chamadas de procedimentos remotos. Modelo em Camadas do TCP/IP Simplificado Graça Bressan/LARC 2000 4

TCP/IP e Implementação Cliente/Servidor Exemplo: TFTP ( Trivial File Transfer Protocol ) Esta aplicação permite a um usuário em um sistema enviar e receber arquivos de outro sistema. Esta aplicação faz parte do conjunto TCP/IP. Exemplo de Cliente/Servidor Modelo Cliente/Servidor e Projeto de Software Terminologia e conceitos Cliente é um programa que inicia a comunicação com o servidor, envia uma solicitação e espera por uma resposta do servidor. Servidor é um programa que espera por solicitações de clientes efetua o processamento necessário e retorna o resultado ao cliente. Graça Bressan/LARC 2000 5

Servidores precisam acessar recursos que são protegidos pelo sistema operacional. Por esta razão precisam de privilégios especiais do sistema. Servidores devem atender às solicitações concorrentemente, assim como se responsabilizar prlos privilégios, o que os tornam mais complicados de implementar. Arquiteturas de Servidores Quanto a conexão Sem conexão Orientado a conexão Quanto a conexão Stateless - sem estado Statefull - com estado Quanto a concorrência Iterativos concorrentes Quanto a conexão Sem conexão Se o cliente e o servidor se comunicarem usando o protocolo UDP. Orientado a conexão Se o cliente e o servidor se comunicarem usando o protocolo TCP (circuito virtual). TCP - fornece uma comunicação confiável e com conexão. UDP - não garante a ordem e a entrega dos datagramas. Só deve ser usado nas seguintes situações: Em redes confiáveis tais como locais, Quando a aplicação tolerar a perda de datagramas (envio de voz ou imagens). Quando o programa cuidar da confiabilidade, Para fazer "broadcast" ou "multicast", Graça Bressan/LARC 2000 6

Se a aplicação não tolerar o "overhead" do circuito virtual. Quanto a conexão Servidor stateless (sem estado) Que não mantém qualquer informação de estado das interações com clientes. São mais tolerantes a ocorrências de erros de transmissão ou falhas em clientes. Deve ser projetado de forma que o servidor forneça sempre a mesma resposta para a mesma solicitação não importando o número de vezes (transações idempotentes). Por exemplo, cada mensagem de um cliente que solicita uma operação sobre um arquivo ao servidor de arquivos deve especificar sempre o nome do arquivo, a posição do byte no arquivo e o número de bytes. Exemplo de servidor stateless: servidor de arquivo NFS da SUN. Servidores statefull(com estado) Quando mantém alguma informação de estado das interações com clientes. São mais eficientes pois podem realizar otimizações dependentes do estado. São mais vulneráveis a falhas pois a informação de estado no servidor pode ficar incorreta se a mensagem for perdida, duplicada, estiver fora de ordem ou se o computador do cliente parar e reinicializar. Exemplos de servidores statefull: a maioria dos servidores de arquivos (Netware, Windows NT, DFS do DCE). Exemplo de servidor de arquivos "statefull" Quando o cliente abre um arquivo, o servidor monta uma tabela do tipo: Descritor de nome Arquivo Posição Corrente 1 A 0 2 B 456 3 C 38 e envia um descritor de arquivo para o cliente. O cliente usa o descritor para as operações de escrita. Se a mensagem do cliente for perdida ou duplicada, ou se o computador do cliente cair o servidor ficará com informações desatualizadas. Graça Bressan/LARC 2000 7

Quanto a concorrência Servidor iterativo É uma implementação de servidor que processa uma solicitação por vez. Um servidor iterativo é o mais fácil de projetar, programar, depurar e modificar. Servidor concorrente É uma implementação de servidor que processa muitas solicitações ao mesmo tempo. É implementado através de processos concorrentes. Se o servidor efetua uma quantidade de processamento pequeno comparado com a quantidade de E/S, é possível implementar o servidor concorrente com um único processo usando E/S assíncrona. Quando usar cada tipo de servidor Iterativo vs Concorrente : Servidores iterativos são mais fáceis de projetar, implementar e manter. Servidores concorrentes são mais rápidos Deve-se usar implementação iterativa se o tempo de processamento de solicitações for suficientemente rápido para a aplicação. Concorrência real vs aparente : Deve-se usar a solução de um único processo se o servidor precisar compartilhar ou trocar dados entre conexões. Deve-se usar a solução multi-processo se cada escravo puder operar isoladamente ou se a máquina for multiprocessadora. Orientado a conexão vs sem conexão : Deve-se usar transporte sem conexão somente se a aplicação cuidar da confiabilidade ou se os clientes acessarem seus servidores dentro de uma rede local com baixa perda e sem reordenação de pacotes. Deve-se usar transporte orientado a conexão sempre que um cliente for separado do servidor por uma WAN. Nunca se deve mover uma aplicação cliente/servidor sem conexão para um ambiente WAN sem verificar antes se o protocolo de aplicação cuida do problema de confiabilidade. Fim do módulo Desenvolvimento de Sistemas Graça Bressan/LARC 2000 8