Módulo 6
PROGRAMAÇÃO DE SISTEMAS DE
COMUNICAÇÃO
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
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
 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
 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
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.
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.
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
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.
 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.
Fat Client
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”
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.
Arquitectura 3-Tier
(exemplo)
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;
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;
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
Servidor Mono-Cliente / Multi-Cliente
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)
Multi-Cliente
 Vantagens
 Multi-utilizador
 Acesso de informação instantâneo.
 Desvantagens
 Custos de implementação
 Implementação
 Fiabilidade
RESOLUÇÃO E FORMAÇÃO DE
IP´S
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.
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.
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.
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.
Classe
Faixa de
endereços de IP
Número de
Redes
Número de
IPs
IPs por rede
Classe A
10.0.0.0 –
10.255.255.255
126
16.777.215
16.777.216
Classe B
172.16.0.1 –
172.31.255.254
16.382
1.048.576
65 534
Classe C
192.168.0.0 –
192.168.255.255
2.091.150
65.535
256
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
SOCKETS
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
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)
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.
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
TCP - Stream
Servidor
socket ()
bind ()
listen ()
accept ()
bloqueado
Cliente
socket ()
connect ()
write ()
read ()
write ()
close ()
read ()
close ()
UDP - Datagram
Servidor
socket ()
bind ()
recvfrom ()
bloqueado
Cliente
socket ()
sendto ()
sendto ()
close ()
recvfrom ()
close ()
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.
Download

mod6v2 - Escopal.com