Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
espec:introducao [2008/07/04 09:15] mazieroespec:introducao [2008/11/21 20:45] (atual) maziero
Linha 1: Linha 1:
 +====== Introdução aos Serviços de Rede ======
 +
 +A Internet oferece uma grande quantidade de recursos e possibilidades de uso que vão do e-mail e do acesso a páginas Web ao vídeo em tempo real e ao compartilhamento de arquivos em sistemas //peer-to-peer//. Todas essas possibilidades de uso são construídas a partir de um conceito relativamente simples: o de ** serviço de rede**.
 +
 +Um serviço de rede pode ser visto como uma aplicação distribuída, que executa em dois ou mais computadores conectados por uma rede. Cada serviço de rede é composto por ao menos quatro elementos:
 +
 +  * **Servidor**: computador que realiza a parte principal do serviço,  usando seus recursos locais e/ou outros serviços.
 +  * **Cliente**: computador que solicita o serviço através da rede; geralmente o cliente age a pedido de um ser humano, através de uma interface de usuário, mas ele também pode ser o representante de outro sistema computacional.
 +  * **Protocolo**: é a definição do serviço propriamente dito, ou seja, os passos, o conjunto de mensagens  e os formatos de dados que definem o diálogo necessário entre o cliente e o servidor para a realização do serviço.
 +  * **Middleware**: é o suporte de execução e de comunicação que permite a construção do serviço. Em geral o //middleware// é composto por sistemas operacionais e protocolos de rede encarregados de encaminhar os pedidos do cliente para o servidor e as respostas de volta ao cliente.
 +
 +De um ponto de vista arquitetural, os sistemas que constroem serviços de rede podem se organizar de várias formas. As arquiteturas de serviços de rede mais freqüentes na Internet são as seguintes:
 +
 +  * //Two-Tier//: esta arquitetura tem dois componentes: o servidor, responsável pela execução do serviço, e o cliente, responsável pela apresentação dos resultados e interação com o usuário. Se o cliente se preocupar somente com a apresentação dos dados, é chamado de "cliente magro"; caso tenha responsabilidade por parte da lógica da aplicação, é chamdado "cliente gordo". Alguns exemplos:
 +    * Clientes gordos: sistemas de e-mail convencionais (não //webmail//);
 +    * Clientes magros: terminais remotos gráficos (VNC)
 +
 +{{ :espec:arq-two-tier.png |Arquitetura two-tier}}
 +
 +  * //Three-Tier//: arquitetura com três componentes: o cliente, responsável pela interface com o usuário, o servidor, responsável pela lógica da aplicação, e os repositórios de dados.
 +
 +{{ :espec:arq-three-tier.png |Arquitetura three-tier}}
 +
 +  * //Peer-to-Peer//: nesta arquitetura todos os participantes são ao mesmo tempo servidores (oferecem serviços e recursos) e clientes (usam serviços e recursos) uns dos outros. Muitos serviços de compartilhamento de arquivos e de comunicação entre usuários se estruturam dessa forma.
 +
 +{{ :espec:arq-p2p.png |Arquitetura peer-to-peer}}
 +
 +
 +Existem muitos serviços de rede, para as mais diversas finalidades. Eis alguns exemplos:
 +
 +  * Recuperação de conteúdo
 +    * HTTP: // HyperText Transfer Protocol//, para busca de páginas Web
 +    * FTP: //File Transfer Protocol//, para busca de arquivos
 +  * Acesso remoto:
 +    * Telnet: para terminais remotos em modo texto
 +    * SSH: //Secure Shell//, idem 
 +    * VNC: //Virtual Network Computer//, para terminais gráficos remotos
 +  * Configuração:
 +    * DHCP: //Dynamic Host Configuration Protocol//, para buscar configurações de rede
 +    * BootP: //Boot Protocol//, para buscar um sistema operacional na inicialização do computador
 +    * LDAP: //Lightweight Directory Access Protocol//, para buscar informações sobre usuários (autenticação, contatos, etc)
 +    * DNS: //Domain Name System//, para converter nomes em endereços IP e vice-versa
 +  * Monitoração e gerência:
 +    * SNMP: //Simple Network Management Protocol//, para monitoração de dispositivos de rede (roteadores, switches) e hosts
 +  * Compartilhamento de recursos:
 +    * NFS: //Network File System//, compartilhamento de arquivos em redes UNIX
 +    * SMB: //Server Message Block//, para compartilhamento de arquivos/impressoras em ambientes Windows
 +    * IPP: //Internet Printing Protocol//, usado para acesso a impressoras em rede
 +  * Comunicação entre usuários:
 +    * SMTP: //Simple Mail Transfer Protocol//, para envio e transferência de e-mails entre servidores 
 +    * POP3: //Post Office Protocol v3//, para acesso a caixas de e-mail
 +    * IMAP: //Internet Message Access Protocol//, idem
 +    * XMPP: //Extensible Messaging and Presence Protocol//, para mensagens instantâneas (Jabber, GTalk)
 +    * SIP: //Session Initiation Protocol//, usado para gerenciar sessões de voz sobre IP, vídeo sobre IP, jogos online, etc.
 +
 +A maioria dos serviços habituais em redes IP usa TCP ou UDP como suporte de comunicação. Esse é o caso de serviços como WWW, E-Mail, sistemas //peer-to-peer// e de voz sobre IP. Esses serviços são implementados basicamente por um processo no lado servidor, com uma porta aberta, cujo número e protocolo de transporte (TCP ou UDP) depende do serviço a ser oferecido. Embora qualquer serviço possa operar em qualquer porta, foram estabelecidas portas //default// para a maioria dos serviços convencionais, visando simplificar a conexão entre clientes e servidores. Alguns números de portas e protocolos default são:
 +
 +^ Serviço ^  Porta  ^ Transporte ^
 +| HTTP |  80  |  TCP  |
 +| DNS |  53  |  UDP  |
 +| SSH |  22  |  TCP  |
 +| SMTP |  25  |  TCP  |
 +| FTP |  21 e 20  |  TCP  |
 +| SNMP |  161 e 162  |  UDP  |
 +| VNC |  5900  |  TCP  |
 +
 +Alguns serviços de rede podem fazer uso de suportes de comunicação mais sofisticados, construídos como camadas acima do TCP ou UDP. Esse é o caso dos serviços baseados em RPC (//Remote Procedure Call//), dos //Web Services// e dos ambientes de objetos distribuídos como Java RMI (//Remote Method Invocation//) e CORBA. Neste caso, as aplicações cliente e servidor se comunicam através de chamadas de procedimentos ou de métodos remotos, construídos por bibliotecas específicas sobre o TCP/IP. Nesse caso, vários processos podem estar envolvidos na  construção do serviço, tanto do lado cliente quanto do lado servidor. Muitas vezes os números de portas usados não são padronizados e podem variar de uma execução para outra, o que pode dificultar a criação de regras de filtragem (//firewall//) para esses serviços.
  
  • espec/introducao.txt
  • Última modificação: 2008/11/21 20:45
  • por maziero