módulo 6. modelo cliente/servidor componentes funcionais duma aplicação : a aplicação cliente...

38
PROGRAMAÇÃO DE SISTEMAS DE COMUNICAÇÃO Módulo 6

Upload: internet

Post on 18-Apr-2015

125 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

PROGRAMAÇÃO DE SISTEMAS DE COMUNICAÇÃO

Módulo 6

Page 2: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Modelo Cliente/Servidor

Componentes funcionais duma aplicação : A aplicação cliente / servidor O modelo Cliente / Servidor

Page 3: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Modelo Cliente/Servidor

O processo Cliente requisita serviços ao Servidor

Page 4: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Componentes funcionais de uma aplicação Todas as aplicações de computadores,

independentemente do que fazem ou da tecnologia que as implementa, possuem três áreas gerais de funcionalidade:

Apresentação (interface com o utilizador ou com outro sistema: permite à aplicação comunicar com outra entidade) Interface com o utilizador Entrada de dados Validação de campos

Page 5: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Aplicação (lógica de negócio ou regras de negócio: parte do processo de computação que as aplicações automatizam) Manipulação de dados Cálculos Fluxos de acordo com regras

estabelecidas

Page 6: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Acesso a dados: código que automatiza o armazenamento, procura e recolha de dados pelas aplicações Inputs/Outputs das bases de dados Procedimentos de armazenamento

Page 7: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Aplicações Monolíticas

Código que implementa toda a lógica num único bloco (3 em 1…).

Inicialmente, as aplicações eram monolíticas e grandes (pesadas…), usadas em ambiente de mainframes.

Page 8: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Aplicações Monolíticas

Desenvolvidas usando linguagens e ferramentas diferentes, com objectivos operacionais específicos, para servirem entidades específicas, durante muitos anos.

Não existia a necessidade de interacção entre diferentes aplicações.

Page 9: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Aplicações Monolíticas

Desvantagens: Alterações difíceis,

demoradas e caras. Partilha de dados e serviços

difícil Nenhuma reutilização de

código redundante Difícil comunicar com outras

aplicações Necessariamente

desenvolvidas numa só (e mesma) máquina

Acessíveis através dum único interface com o utilizador

Page 10: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Arquitectura do Modelo Cliente/Servidor (I) Arquitectura em que as aplicações para

cumprirem os seus objectivos funcionais devem pedir assistência (serviços) a uma outra componente de software.

Arquitectura “2-Tier”: Fat Client: Parte de GUI e lógica de negócio

juntas no cliente que requer serviços de acesso a dados ao servidor.

Thin Client: Só a parte do GUI reside no cliente e a lógica de negócio reside com o acesso a dados no servidor.

Page 11: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Arquitectura “3-Tier” Arquitectura “N-Tier”

Estas arquitectura são descritas pelo número de componentes executáveis normalmente dívidida por sistemas ou máquinas envolvidos.

Page 12: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Fat Client

Page 13: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Arquitectura 2-Tier

Desvantagens do modelo 2- Tier:

São difíceis e caras de modificar, quando as regras mudam (ou uma das partes dependentes)

Informação redundante Dá origem à separação das

três componentes em três partes de código executável distinto, isto é, à arquitectura “3-Tier Cliente/Server”

Page 14: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Arquitectura 3-Tier

Benefícios deste Modelo: Incrementa o uso de interfaces

gráficos com o utilizador; Promove um acesso mais fácil

aos dados; Integra a multi-plataforma; Permite o acesso a mais

ferramentas de desenvolvimento de aplicações;

Melhora as operações de gestão (Reengenharia de processos);

Permite o processamento de aplicações distribuídas;

Possui menos custos operacionais.

Page 15: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Arquitectura 3-Tier (exemplo)

Page 16: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Desvantagens do modelo 3-Tier

São difíceis e caras de modificar quando as regras de mudam (mão de obra mais especializada);

A parte que implementa as regras de tem de ser executada no mesmo computador limitando assim a sua flexibilidade;

Page 17: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor
Page 18: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

N-Tier Client/Server Architecture Cada “serviço” implementa um

pequeno conjunto de regras; As regras de definem como é que deve

ser feito; Quando uma regra deve ser modificada

para suportar alterações de requisitos na aplicação, somente o serviço que implementa essa regra de tem de ser alterado; o restante código da aplicação permanece intacto;

Page 19: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

N-Tier Client/Server Architecture Vantagens da arquitectura N-Tier

Fácil manutenção e alteração de código Melhor desempenho Potencial na partilha e reutilização de

código

Page 20: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Servidor Mono-Cliente / Multi-Cliente

Page 21: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Mono-Cliente

Vantagens : Segurança Maior simplicidade de implementação Não existem problemas de alteração duplicada de

informação. Requesitos de Hardware mínimos. Económico Maior fiabilidade.

Desvantagens : Não permite vários utilizadores. Não se adequa à realidade informática. Tempo de resposta maior (Requesitos de Hardware

mínimos)

Page 22: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Multi-Cliente

Vantagens Multi-utilizador Acesso de informação instantâneo.

Desvantagens Custos de implementação Implementação Fiabilidade

Page 23: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

RESOLUÇÃO E FORMAÇÃO DE IP´S

Page 24: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

IP´s - Notação

O endereço IP, na versão 4 (IPv4), é um número de 32 bits escrito com quatro octetos e no formato decimal (exemplo: 128.6.4.7).

A primeira parte do endereço identifica uma rede específica, a segunda parte identifica um host dentro dessa rede.

Deve notar que um endereço IP não identifica uma máquina individual, mas uma ligação à rede.

Assim, uma gateway ligada à n redes tem 'n' endereços IP diferentes, um para cada ligação.

Page 25: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Resolução

Os endereços da Internet são mais conhecidos pelos nomes associados aos endereços IP (por exemplo, www.escopal.com) .

Para que isto seja possível, é necessário traduzir (resolver) os nomes em endereços IP.

O Domain Name System (DNS) é um mecanismo que converte nomes em endereços IP e endereços IP em nomes. Os nomes DNS são hierárquicos e permitem que faixas de espaços de nomes sejam delegados a outros DNS.

Page 26: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Classes de endereços

Originalmente, o espaço do endereço IP foi dividido em poucas estruturas de tamanho fixo chamados de "classes de endereço". As três principais são a classe A, classe B e classe C. Examinando os primeiros bits de um endereço, o software do IP consegue determinar rapidamente qual a classe, e logo, a estrutura do endereço.

Page 27: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Redes privadas

Dos mais de 4 bilhões de endereços disponíveis, três intervalos são reservados para redes privadas. Estes intervalos não podem ser reencaminhados para fora da rede privada - não podem comunicar directamente com redes públicas. Dentro das classes A,B e C foram reservadas redes que são conhecidas como endereços de rede privados.

Page 28: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

ClasseFaixa de endereços de IP

Número de Redes

Número de IPs

IPs por rede

Classe A10.0.0.0 – 10.255.255.255

126 16.777.215

16.777.216

Classe B172.16.0.1 – 172.31.255.254

16.382 1.048.576 65 534

Classe C192.168.0.0 – 192.168.255.255

2.091.150 65.535 256

Page 29: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Proposta.

Diferença IP público e IP privado ? Quantos IP´s pode ter um

computador ? Qual o objectivo do IP ? Qual o IP do computador em que

está alojado a página da escola www.escopal.com ?

Em que condição se poderia aceder à página da escola usando o seguinte endereço no browser 192.168.0.1

Page 30: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

SOCKETS

Page 31: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Sockets

Usado na troca de mensagens na comunicação entre processos (IPC - InterProcess Communication)

Endereço socket: identificador de comunicação que consiste de número de porta local e endereço IP

Comunicação baseada em pares de sockets, cada um pertencendo a um dos processos comunicantes

Page 32: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor
Page 33: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Endereçamento

Para receber ou enviar mensagens os processos precisam de um identificador (endereços IP ou domínios + porta a usar).

O identificador é composto por : IP (exemplo: 127.0.0.1) Porta (http porta 80)

Page 34: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Tipos de sockets

Tipos de sockets : stream (TCP/IP) e datagram (UDP/IP)

Stream: confiáveis, dados são entregues em ordem na mesma sequencia de envio. Comunicação bidirecional, orientado à ligação . Existe uma ligação lógica entre os processos.

Datagram: não confiáveis, dados podem ser recebidos fora de ordem. Comunicação bidireccional, porém sem conexão. Cada datagrama é enviado separadamente podendo usar caminhos diferentes.

Page 35: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Principais funções socket

Socket – Cria um socket. Connect – Inicia a ligação ao servidor. Write – Escreve os dados. Read – Lê os dados. Close – Fecha a ligação Bind – Atribui um IP e uma porta ao socket Listen – Coloca o socket em modo passivo

“ouvir/escutar” Accept – Bloqueia o servidor até a chegada da ligação Recvfrom – Recebe a informação e guarda o endereço

do remetente. Sentto – Envia a informação especificando o endereço

Page 36: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

TCP - Stream

close ()

listen ()

bind ()

socket ()

accept ()

read ()

write ()

Servidor

socket ()

Cliente

connect ()bloqueado Estabelecimento de ligação

write ()

read ()

close ()

Dados (pedido)

Dados resposta)

Page 37: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

UDP - Datagram

sendto ()

bind ()

socket ()

recvfrom ()

Servidor

socket ()

Cliente

bloqueado

sendto ()

recvfrom ()

Dados (pedido)

Dados resposta)

close ()close ()

Page 38: Módulo 6. Modelo Cliente/Servidor  Componentes funcionais duma aplicação :  A aplicação cliente / servidor  O modelo Cliente / Servidor

Proposta

Sabendo o modo de funcionamento das ligações TCP e UDP, realize um trabalho que explique detalhadamente as diferenças entre os mesmos e, o que leva a ao programador escolher quanto está a desenvolver o seu software entre TCP ou UDP.