Professional Documents
Culture Documents
SUMÁRIO
1 - INTRODUÇÃO 1
2 - ARQUITETURA CLIENTE/SERVIDOR 1
2.1 - V ANTAGENS 3
2.2 - D ESVANTAGENS 3
2.3 - M ODELOS DA A RQUITETURA C LIENTE / S ERVIDOR 4
2.3.1 - Arquitetura C/S Simples 4
2.3.2 - Arquitetura C/S em Dois Níveis 4
2.3.3 - Arqu itetura C/S Multinível 5
2.3.4 - Arquitetura C/S Par-Par 6
4 - REDES DE COMPUTADORES 16
4.1 - P ROTOCOLOS 16
4.1.1 - O Modelo de Referência OSI/ISO 17
4.1.2 - TCP/IP 18
4.2 - A SPECTOS DE CONEXÃO 20
4.3 - A SPECTOS DE SINCRONISMO E PASSAGEM DE M ENSAGEM 21
4.4 - C ONEXÃO TCP/IP 22
4.5 - S OCKETS 25
4.5.1 - Interfaces de Comunicação utilizando Sockets 28
5 - BANCOS DE DADOS ORIENTADOS A OBJETOS 30
5.1 - I NTRODUÇÃO 30
5.2 - A LGUNS SGBDOO S E SUAS VERSÕES CLIENTE /SERVIDOR 31
5.2.1 - SGBDOO O 2 31
5.2.2 - S GBDOO GemStone 32
5.2.3 - SGBDOO POET 33
6 - CONCLUSÃO 34
REFERÊNCIAS BIBLIOGRÁFICAS 35
1
Fundamentos da Arquitetura Cliente/Servidor
1 - Introdução
2 - Arquitetura Cliente/Servidor
Cliente
•Cliente, também denominado de “ front-end ” e “ WorkStation
”, é um
processo que interage com o usuário através de uma interface gráfica ou
não, permitindo consultas ou comandos para recuperação de dados e
análise e representando o meio pela qual os resultados são apresentados.
Além disso, apresenta algumas características distintas:
•É o processo ativo na relação Cliente/Servidor.
Inicia
• e termina as conversações com os Servidores, solicitando serviços
distribuídos.
•Não se comunica com outros Clientes.
•Torna a rede transparente ao usuário.
Servidor
•Também denominado Servidor ou “ back-end
”, fornece um determinado
serviço que fica disponível para todo Cliente que o necessita. A natureza
e escopo do serviço são definidos pelo objetivo da aplicação
Cliente/Servidor. Além disso, ele apresenta ainda algumas propriedades
distintas:
•É o processo reativo na relação Cliente/Servidor.
•Possui uma ex ecução contínua.
•Recebe e responde às solicitações dos Clientes.
•Não se comunica com outros Servidores enquanto estiver fazendo o
papel
de Servidor.
•Presta serviços distribuídos.
Outras características dos processos
•Atende a diversos ClientesCliente e Servidor podem ser
simultaneamente.
(KALAKOTA,1997).
encontradas
Alguns »tiposem
deServidor
serviços de
queArquivos
Telex
Impressora
Banco
Redes
um Servidor
de Dados
2 pode proporcionar são:
» Servidor de Fax
» Servidor X-Windows
» Servidor de Processamento e Imagens
» Servidor de Comunicação e etc.
2.1 - Vantagens
• Confiabilidade
Se uma máquina apresenta algum problema, ainda que seja um dos
Servidores,
parte do Sistema continua ativo.
• Treinamento
A diferença entre a filosofia de desenvolvimento de software para o
microcomputador de um fabricante para o outro, não é como a de uma
linguagem de programação para outra. Um treinamento mais efetivo
torna-se
necessário.
• Gerenciamento
Aumento da complexidade do ambiente e a escassez de ferramentas de
auxílio
tornam difícil o gerenciamento da rede.
CLIENTE
SERVIDOR
comunicação
aquela
do usuário,
em
A configuração
que
elepossíveis,
existem
imagina vários
usual
que
existe
existem
Cliente/Servidor
Clientes
na realidade
vários
requisitando
Servidores
umaencontrada
mistura
serviços
conectados
denaCamaioria
lientes
um aúnico
edas
2.3.2 -2c).
Arquitetura
Servidor.
arquitetura
somente
Cliente,
Servidores C/S
empresas,
ou
um
Esta
(figura
se
seja, em Dois
caracteriza
c éentrado Níveis
como
no Cliente
(figura
sendo c2b).
entrada
4 Entretanto,
no Servidor
(figura
com as 2a).
várias
Porém ligações
na visão
de
CLIENTE CLIENTE
CLIENTE
SERVIDOR
SERVIDOR SERVIDOR
SERVIDOR
CLIENTE
SERVIDOR SERVIDOR
SERVIDOR
SERVIDOR SERVIDOR
SERVIDOR
CLIENTEFigura 3SERVIDOR
-CLIENT
CLIENTE
Arquitetura
5 E Multinível
C/S CLIENT E
2.3.4 - Arquitetura C/S Par-Par
Esta arquitetura pode ser vista como o caso mais geral da arquitetura
Cliente/Servidor, ilustrado na figura 4. Cada um dos nodos desta
arquitetura
tanto o papelassume
de Cliente quanto de Servidor. Na verdade, torna-se pouco
funcional
com quemlidar
é o Cliente ou o Servidor. É o caso onde o processo interage
com outrosem uma base pareada, não existindo nenhum Mestre ou
processos
Escravo:
estação dequalquer
trabalho pode iniciar um processamento, caso possua uma
interface de entre o usuário e o processo Cliente.
comunicação
SERVIDOR SERVIDOR
Processamento Distribuído
A distribuição de aplicações e tarefas se faz através de múltiplas
plataformas
decooperação
processamento.
aplicações/tarefas
transação
através
mesmo
A
simples
processosde
tempo,
transação.
acliente-servidor.
duas
serrequer
concluída.
por
ouirão
O
mais
exemplo,
dois
processamento
ocorrer
máquinas
ou
Em
É cada
mais
uma
outras
em formadistribuído
processador
mais
processadores
e os
cooperativo
palavras,
processos,
de
deum implica
computação
processo,
orealiza que
processamento
distintos
éna
relatado
maioria,
parte essas
distribuída
napara
ordem
para
denão
uma
éambos
de
processamento
umauma
distribuído
rodam
em
aplicação
Processamento
completar
os
onde dois
aoseqüência.
umadistribuído
Cooperativo
Geralmente,
também 6o dado
é distribuído
usado em através
um ambiente
de plataformas.
de
ou mais processadores distintos são requeridos para completar uma
simples
transação de negócios. Normalmente esses programas interagem e
executam
concorrentemente como diferentes processos. Os processos
cooperativos
também são considerados como um estilo de Cliente/Servidor através da
arquitetura de mensagens, que devem obedecer a um determinado
padrão.
No contexto do presente trabalho pretende-se utilizar as características
do
processamento distribuído. Este tipo de processamento apresenta duas
configurações
arquitetura para uma
Cliente/Servidor. A primeira, que é representada por três
camadas,
pela é responsável
visualização da interação entre os aplicativos e o hardware, como
pode ser visto na figura
5.
A segunda representação, também fornecida em três camadas, mostra
divisão como é tratada a de uma aplicação, segundo as configurações Gartner Group,
da funcionalidade
do pode ser visto na figura 6.
como
Processamento Cliente-Servidor
Cliente Servidor
Aplicação Aplicação
Hardware Hardware
Apr e sent açã o Apr e sent açã o Apr e sent açã o Apr e sent açã o Apr e sent açã o
Ge r ênci a de
Dad os
Apr ese nt ação
Processamento Distribuído
Processamento
Processamento Processamento
Centralizado Distribuído
Determina
. Ex.:uma
Ligação
conversão
Filtro de umna
desktop
mensagem com um de comunicação
Peer-to-Peer mainframeCliente/Servidor
através
entre ode um
Características
• usuário
hostterminal.
de emulador
e do
o Processo de Filtro
A B C Figura : 8
7 - Processamento Distribuído
Características do Processo Peer-to-Peer (não hierárquicos):
•São processos “clones” rodando em todas as máquinas e prestando
serviços
para osuns
outros.
•Não existem processos servidores, estabelecendo um Servidor dedicado.
•Cada processo pode ser Cliente e Servidor para outros processos.
A A’
A p l i ca çã o Ge re n ci a d o r d e
A PI d o Ge r en c i ad o r d e
B a n co d e D a d o s
Ba n c o d e Da d o s
S er v iç o s do S is te m a S ist ema d e Ar qu iv os
H a rd wa re H ar d wa re
Hardware Hardware
L óg ic a d e Ló gi ca de L óg ic a de
Re d e N e gó cio Ne g óci o N og ó cio
Ge rên cia de
D ad os
Ap res en t açã o
L ó gi ca d e L óg ic a d e Ló g ica de
N e gó cio N eg ó cio N eg óc io
Revamping Modificado
Este terceiro tipo se deriva do segundo, porém com o fato interessante
de se manipular a aplicação centralizada instalando sistemas gráficos,
poder
visando
retirar o melhor de sua performance.
Apresentação
Lógica dede
Distribuídos
Gerenciamento
Gerência
Gerência Negócio
de deFonte:
Dados
Dados
Dados
15 Gartner Group
Rede
Outro ponto muito importante a ser verificado é o gerenciamento da
concorrência
processos, quase sempreentrea cargo dos Sistemas Operacionais das
plataformas,
Windows NTtais
e o como
UNIXo(CUSTER,1993) (PHAM,1996),
(TANENBAUM,1995).
de gerenciamento para oOcompartilhamento
trabalho dos dados se deve
exclusivamente
Os tipos aos SGBDs. apresentadas não são mutuamente exclusivas,
de arquiteturas
mas sim É possível fazer vários tipos de associações entre
complementares.
Servidores e Clientes,
dentro de uma rede de computadores.
A tabela 1 mostra um resumo das características de sistemas
Cliente/Servidor.
Atributo Cliente Servidor
Modo Ativo Reativo
Execução Início e final fixos Roda o tempo todo
Finalidade Principa l 1. Manipulação de tela / janela 1. Oferecer serviços funcionais
2. Interpretação de menu / 2. Compartilhamento de dados na
comando aplicação
3. Entrada de mouse / teclado 3. Compartilhamento d e
4. Entrada de dados e validação dispositivos
5. Processamento de ajuda
6. Recuperação de erro
Transparência Oculta rede e servidores Oculta detalhes de implementação
dos serviços
Inclui Comunicação com diferentes Comunicação com diferentes
servidores clientes
Exclui Comunicação Cliente - Cliente Comunicação Servidor - Servidor
4 - Redes de Computadores
4.1.2 - TCP/IP
D 224.0.0.0 -
239.255.255.255
E 240.0.0.0 -
255.255.255.255
Tabela 2 - Limite do número de redes e hosts em cada endereço IP
A tabela 3 a seguir
HOST 2
compara os dois tipos de
comunicação.
Figura 18 - Mensagem baseada em conexão
4.3 -implícito
espera
está Aspectos
operacional
sendo executados
aA
Caso
respostade
comunicação
teoria
do
ono Sincronismo
Cliente
Cliente
demecanismo
da
em
programação
mensagem
paralelo
possa
éentre epassagem
multitarefaPassagem
continuar
Cliente
dea enviada
outros
concorrente
ou de
e Servidor
suas
processos. Mensagem
multiprocessamento,
para
detarefas,
continuar
émensagem
baseada
procede
Esses
enquanto
ona
processos
de
seu
noção
forma
espera
deimplícita.
seprocessos
a resposta
processamento,
protocolo
o(TANENBAUM,1995).
possibilitando
executar
comunicam
protocolo
Quando
da
de
outras
utilizado
mensagem,
comunicação
de ao
comunicação
tarefas
odiz-se
Cliente
Cliente
é umque
enquanto
protocolo
o é umaguarda
protocolo
com ,bloqueio
aonde
resposta
o sem
21 sincronismo
dobloqueio
Servidor.
. Isto ocorre
entre Cliente
quandoeoServidor
sistema
compartilhando memória ou passando mensagens por meio de um canal
de comunicação(AMARAL,1993) (VIDAL,1994). O termo IPC
compartilhado
(Interprocess
se Comunication)
refere às técnicas utilizadas na passagem de mensagem.
No compartilhamento de memória, os processos concorrentes
compartilham
mais variáveis, umaaou
e utilizam mudança de estados dessas variáveis para se
comunicarem.
técnica Essa ocupada, semáforos, regiões críticas condicionais e
inclui espera
monitores
(TANENBAUM,1995). Como esta técnica exige que os processos
estejam
máquina,nanão
mesma
são considerados base para a programação
Cliente/Servidor.
Em técnicas baseadas na passagem de mensagem, os processos enviam
e recebem
mensagens explicitamente, em vez de examinar o estado de uma
variável compartilhada
(AMARAL,1993) (COMER,1993). O benefício principal da passagem
de mensagem
existe é que entre o envio de mensagens a processos remotos
pouca diferença
ou locais. Portanto,
passagem de mensagema é poderosa para criação de aplicações em rede.
Outrainformações
mais vantagem é podem
que ser trocadas numa mensagem do que por
mudança no estado de uma
variável compartilhada.
A figura 19 mostra a troca de mensagem entre cliente e servidor sem o
parte dobloqueio
cliente. por
Processo Processo
Solicitante Respondedor
APIs proprietárias
4
TCP/IP DECNet NetBEUI Appletalk SPX/IPX
3
Driver de APIs padrões
Camadas
Camadas superiores
Inferiores Transporte
Sessão OSI/ISSO
Modelo
Link
Apresentação
Ap
Figura
Física
de
Rede
licação
Dados
21Física
23
Protocolo
Aplicação Protocolo
Link de Dados
TCP/IP
FTP,
IP, TCP
ARP
SMTP
TelneteTCP/IP
ee UDP
ICMP
DNS
A Internet utiliza o padrão UDP, uma vez que as comunicações baseadas
TCP/IPno se protocolo
utilizam de portas de comunicação que, associadas aos , permitem
sockets a troca de
mensagens.
O protocolo TCP/IP disponibiliza 999999 portas (comprovação
as portasempírica),
de númerosendo
0 atéque
a porta de número 1023 são reservadas para
serviços pré- como por exemplo a porta 23, para o serviço Telnet, a
determinados,
porta 21
assim porpara o FTP,
diante. e a este limite, caso a Internet utilizasse o
Devido
padrão TCP, as máquinas
que respondessem a um número muito grande de acessos, acabariam
limitando a sua
utilização.
No padrão UDP, por sua vez, quando existe uma solicitação de
endereço comunicação, o da mensagem segue junto com a mensagem
IP do remetente
para o que
forma destinatário, de
o disponibilizador do serviço possa posteriormente enviar a
resposta do serviço
solicitado.
É importante salientar que, para que as comunicações transcorram
APIs não normalmente, as precisam ser as mesmas, muito embora os
necessariamente
protocoloscomo
mesmos, devam serser
pode os visto na figura 22.
Protocolo Plataforma
NetBEUI Microsoft
SPX/IPX Novell
Apple Talk Mcintosh
máquinas
(DAVIS,1994).
extensão
de
como
dados
protocolo
sessão
por
confiável
Opara
Os protocolo
(RENAUD,1994),
ser
SPX,
que
protocolos
visto
aestejam
Ele
camada
igual
e onaéoutro
NetBEUI
oao
SPX/IPX
figura
com
responsável
de
SPP
para
Link
os15.
que
daéambientes
frames
de
são
Xerox,
Possui
de
oferece
propriedade
Dados.
pela
uma dedois
oferece
camada
implementação
as
Windows
informação
Conecta-se
funcionalidades
tipos
da
um
de
de
Microsoft
3.x
serviço
Transporte
frames,
não
diretamente
, Windows
dos
numerados
de
de
um
protocolos
e fluxo
permite
e para
Rede,
NT
com
de aXNS
Tabela 4 -Demais protocolos do Windows NT
3.xNetBIOS
oacrescentando
transporte
fornecer
usados
dados
/ 4.0
confiável,
em
conexão
daeumWindows
Xerox.
eDatagramas.
na
rede
fluxo
uma
camada
com
do
OdeNetBEUI,
95 24
enquanto que o IPX, igual ao IDP, oferece um serviço de datagrama,
permitindo a conexão
entre máquinas do tipo PC que estejam rodando o Sistema Operacional
de Rede da Novell
(RENAUD,1994).
Por sua vez, o protocolo Apple Talk permite a conexão com máquinas
da plataforma
Macintosh, e é um protocolo totalmente particular. Os principais
protocolosMacintosh
máquinas usados porsão os DDP - Datagram Delivery Protocol, ATP -
AppleTalk
Transaction Protocol e ADSP - AppleTalk Data Stream Protocol
(RENAUD,1994).
4.5 - Sockets
Aplicação 1 Aplicação n
Winsock.DLL
TCP/IP
Network card
nomeado e
escutando
recebido requisição
de conexão
conexão fechamento
Bind() e
pendente pendente
Listen()
solicitação de
Accept() fechamento Closesocket()
Socket()
Closesocket()
abrir Connect() conectado socket
conexão (escrevendo) fechado
dados falha de
Preparado p/ envio
recebidos
ler dados OOB
(1) Servidor no ar
Porta 2450
(2 b) Solicitação de Conexão
Servidor
(2a) Cliente no ar
Nome do
servidor e Porta
(3) Criação 2450
Cliente
Processo Filho
Processo Filho
do Servidor
Porta 1111
Caso ocorra uma perda de conexão, tanto por parte do Cliente quanto
sem antespelo
terServidor
sido efetuada a função CloseSocket, quem ainda estiver
“no ar” não
reutilizar poderá
a porta que estava sendo utilizada até que o seu fechamento se
dê deevitar
Para formaquecorreta.
problemas desta natureza possam vir a ocorrer, é
necessário o
desenvolvimento de uma função de Time-out
, de modo a proporcionar um nível de segurança
ainda maior para as conexões.
A função de Time-out fica checando se existe troca de informações nas conex ões
existentes, e permite que a função CloseSocket seja ativada
automaticamente
inexistência ao se verificar
de qualquer a
tipo de troca de mensagem após um
determinado tempo,
possibilitando assim a otimização das portas do protocolo TCP/IP.
5.1 - Introdução
34
Referências Bibliográficas
6. (CUSTER,1993) Custer, Helen “Windows NT”, Microsoft Press, Makron Books, São
Paulo, 1993.