Escolar Documentos
Profissional Documentos
Cultura Documentos
Fundamentos - Da - Arquitetura - Cliente-Servidor PDF
Fundamentos - Da - Arquitetura - Cliente-Servidor PDF
SUMRIO
1 - INTRODUO
2 - ARQUITETURA CLIENTE/SERVIDOR
2.1 - VANTAGENS
2.2 - DESVANTAGENS
2.3 - MODELOS DA ARQUITETURA CLIENTE / SERVIDOR
2.3.1 - Arquitetura C/S Simples
2.3.2 - Arquitetura C/S em Dois Nveis
2.3.3 - Arquitetura C/S Multinvel
2.3.4 - Arquitetura C/S Par-Par
3 - ALGUNS TIPOS DE PROCESSOS NUMA ARQUITETURA CLIENTE/SERVIDOR
3.1 - PROCESSAMENTO DISTRIBUDO
3.2 - CAMADAS DA ARQUITETURA CLIENTE / SERVIDOR
3.2.1 - Sistema de Trs Camadas para a Aplicao
3.2.1.1 - Apresentao Distribuda
3.2.1.2 - Apresentao Remota
3.2.1.3 - Lgica Distribuda
3.2.1.4 - Gerenciamento de Dados Centralizado
3.2.1.5 - Gerenciamento de Dados Distribudos
3
3
4
4
4
5
6
6
7
9
12
13
14
14
15
15
4 - REDES DE COMPUTADORES
16
4.1 - PROTOCOLOS
4.1.1 - O Modelo de Referncia OSI/ISO
4.1.2 - TCP/IP
4.2 - ASPECTOS DE CONEXO
4.3 - ASPECTOS DE SINCRONISMO E PASSAGEM DE MENSAGEM
4.4 - CONEXO TCP/IP
4.5 - SOCKETS
4.5.1 - Interfaces de Comunicao utilizando Sockets
5 - BANCOS DE DADOS ORIENTADOS A OBJETOS
5.1 - INTRODUO
5.2 - ALGUNS SGBDOOS E SUAS VERSES CLIENTE/SERVIDOR
5.2.1 - SGBDOO O2
5.2.2 - SGBDOO GemStone
5.2.3 - SGBDOO POET
16
17
18
20
21
22
25
28
30
30
31
31
32
33
6 - CONCLUSO
34
REFERNCIAS BIBLIOGRFICAS
35
2 - Arquitetura Cliente/Servidor
A arquitetura Cliente/Servidor vem sendo desenvolvida h vrios anos, porm em
pequenos passos. Primeiro, a realocao de aplicaes em Mainframe para as chamadas
plataformas abertas rodando, Sistema Operacional UNIX. Depois, com relao a abordagem
dos dados, saindo de Sistemas de Arquivos ou Banco de Dados Hierrquicos locados em
Mainframes para Sistemas de Banco de Dados Relacional, e posteriormente, a importncia da
capacidade grfica dos pacotes de front-end existentes, facilitando a interao com o usurio
(MCKIE,1997).
Vrios aspectos sobre uma definio da arquitetura Cliente/Servidor podem ser
descritos.
O termo Cliente/Servidor refere-se ao mtodo de distribuio de aplicaes
computacionais atravs de muitas plataformas. Tipicamente essas aplicaes
esto divididas entre um provedor de acesso e uma central de dados e
numerosos clientes contendo uma interface grfica para usurios para
acessar e manipular dados.
Cliente/Servidor geralmente refere-se a um modelo onde dois ou mais
computadores interagem de modo que um oferece os servios aos outros.
Este modelo permite aos usurios acessarem informaes e servios de
qualquer lugar.
Cliente/Servidor uma arquitetura computacional que envolve requisies
de servios de clientes para servidores. Uma rede Cliente/Servidor uma
extenso lgica da programao modular.
Portanto, uma definio para a arquitetura Cliente/Servidor seria a existncia de uma
plataforma base para que as aplicaes, onde um ou mais Clientes e um ou mais Servidores,
juntamente com o Sistema Operacional e o Sistema Operacional de Rede, executem um
processamento distribudo.
1
Servidor
Tambm denominado Servidor ou back-end, fornece um determinado
servio que fica disponvel para todo Cliente que o necessita. A natureza e
escopo do servio so definidos pelo objetivo da aplicao
Cliente/Servidor. Alm disso, ele apresenta ainda algumas propriedades
distintas:
o processo reativo na relao Cliente/Servidor.
Possui uma execuo contnua.
Recebe e responde s solicitaes dos Clientes.
No se comunica com outros Servidores enquanto estiver fazendo o papel
de Servidor.
Presta servios distribudos.
Atende a diversos Clientes simultaneamente.
Outras caractersticas dos processos Cliente e Servidor podem ser encontradas em
(KALAKOTA,1997).
Alguns tipos de servios que um Servidor pode proporcionar so:
!
Servidor de Arquivos
!
Servidor de Impressora
!
Servidor de Banco de Dados
!
Servidor de Redes
!
Servidor de Telex
2
!
!
!
!
Servidor de Fax
Servidor X-Windows
Servidor de Processamento e Imagens
Servidor de Comunicao e etc.
Ferramentas
A escassez de ferramentas de suporte, no raras vezes obriga o desenvolvimento
de ferramentas prprias. Em funo do grande poderio das novas linguagens de
programao, esta dificuldade est se tornando cada vez menor.
Treinamento
A diferena entre a filosofia de desenvolvimento de software para o
microcomputador de um fabricante para o outro, no como a de uma
linguagem de programao para outra. Um treinamento mais efetivo torna-se
necessrio.
Gerenciamento
Aumento da complexidade do ambiente e a escassez de ferramentas de auxlio
tornam difcil o gerenciamento da rede.
2.3 - Modelos da Arquitetura Cliente / Servidor
Existem cinco tipos de modelos para a implantao da arquitetura Cliente/Servidor em
processamentos distribudos: (SALEMI,1993)
2.3.1 - Arquitetura C/S Simples
A primeira abordagem para um sistema distribudo a arquitetura
Cliente/Servidor Simples. Nesta arquitetura, o Servidor no pode iniciar nada. O
Servidor somente executa as requisies do Cliente. Existe uma clara funo de
diferenciao: Pode-se estabelecer que o Cliente o mestre e o Servidor o escravo,
como mostra a figura 1.
CLIENTE
SERVIDOR
Figura 1 - Arquitetura Cliente/Servidor Simples
CLIENTE
CLIENTE
CLIENTE
SERVIDOR
Figura 2 - (a) Arquitetura C/S em Dois Nveis - Centrado no Servidor
SERVIDOR
SERVIDOR
SERVIDOR
CLIENTE
Figura 2 - (b) Arquitetura C/S em Dois Nveis - Centrado no Cliente
SERVIDOR
SERVIDOR
SERVIDOR
CLIENTE
CLIENTE
CLIENTE
SERVIDOR
SERVIDOR
CLIENTE
SERVIDOR
CLIENTE
CLIENTE
CLIENTE
CLIENTE
SERVIDOR
SERVIDOR
Processamento Cliente-Servidor
Cliente
Servidor
Aplicao
Aplicao
Servios do Sistema
Servios do Sistema
Hardware
Hardware
Modelo de Distribuio de
Processos
Apresentao
Apresentao
Apresentao
Lgica de
Negcio
Rede
Apresentao
Apresentao
Lgica de
Negcio
Lgica de
Nogcio
Gerncia de
Dados
Apresentao
Lgica de
Negcio
Lgica de
Negcio
Lgica de
Negcio
Gerncia de
Dados
Gerncia de
Dados
Gerncia de
Dados
Apresentao
Distribuda
Apresentao
Remota
Lgica
Distribuda
Gerncia de
Dados
Gerncia de
Dados
Gerenciamento de Gerenciamento de
Dados Centralizado Dados Distribudo
Processamento Distribudo
Processamento
Processamento
Centralizado
Filtro
Processamento
Distribudo
Peer-to-Peer
Cliente/Servidor
B
8
Servidor de Arquivos
Cliente
Servidor
Aplicao
Gerenciador de Banco
de Dados
Aplicao
Redirecionador do
Sistema de Arquivos
Hardware
Sistema de Arquivos
Hardware
O Cliente, neste tipo de estrutura o usurio, passando a ter uma viso da aplicao
como se as partes, Cliente e Servidor, fossem algo nico. A figura 11 exemplifica esta viso.
Servidor
Aplicao
Gerenciador de
Banco de Dados
API do Gerenciador de
Banco de Dados
Servios do Sistema
Sistema de Arquivos
Hardware
Hardware
Processo Cliente
Aplicao
Processo Servidor
Servios do Sistema
Servios do Sistema
Hardware
Hardware
12
Modelo de Distribuio de
Processos
Apresentao
Apresentao
Apresentao
Lgica de
Negcio
Rede
Apresentao
Apresentao
Lgica de
Negcio
Lgica de
Nogcio
Gerncia de
Dados
Apresentao
Lgica de
Negcio
Lgica de
Negcio
Lgica de
Negcio
Gerncia de
Dados
Gerncia de
Dados
Gerncia de
Dados
Apresentao
Distribuda
Apresentao
Remota
Lgica
Distribuda
Gerncia de
Dados
Gerncia de
Dados
Gerenciamento de
Gerenciamento de
Dados Centralizado Dados Distribudo
Gerncia de Dados
Apresentao Distribuda
Revamping Evoludo
Este tipo no emite simplesmente uma rplica grfica da janela a ser criada de
uma aplicao no grfica. Constri uma aplicao inteiramente nova,
inteiramente diferente da aplicao original. Assim, um dilogo na nova
aplicao pode representar um empilhamento de vrias janelas da aplicao
centralizada.
Revamping Modificado
Este terceiro tipo se deriva do segundo, porm com o fato interessante de se
poder manipular a aplicao centralizada instalando sistemas grficos, visando
retirar o melhor de sua performance.
3.2.1.2 - Apresentao Remota
A segunda arquitetura definida como
Apresentao Remota, e possui a implementao
tanto do mdulo de gesto, quanto o de lgica na
estao Cliente, ficando responsvel, entre outras
tarefas, pela manipulao das telas e pelas crticas
dos dados que esto sendo inseridos.
Uma ponto a ser observado, quando se
utiliza um Servidor X-Windows : embora o usurio
se localize no Terminal X-Windows, ele realmente
est se utilizando do Servidor X-Windows. O
terminal real Cliente onde o usurio est
conectado. Esta caracterstica muito encontrada
em ambientes UNIX. O Servidor X-Windows fica
responsvel pela manipulao das telas e interao
com o usurio.
Apresentao
Rede
Lgica de Negcio
Gerncia de Dados
Apresentao Remota
Apresentao
Lgica de Negcio
Rede
Lgica de Negcio
Gerncia de Dados
Lgica Distribuda
armazenados no so utilizados, necessrio que sejam feitas compilaes das sentenas das
consultas antes de execut-las, evidenciando uma perda desnecessria no tempo de
processamento para enviar a resposta ao Cliente. Porm, um ponto negativo para este tipo de
arquitetura, o fato de se ter que criar antecipadamente as consultas a serem utilizadas pelo
sistema. Ao contrrio, se o sistema utilizar interaes com o usurio este tipo de arquitetura
no o mais recomendado, pois no se pode prever todos os tipos de consultas que os
usurios possam a vir a fazer.
3.2.1.4 - Gerenciamento de Dados Centralizado
Apresentao
Lgica de Negcio
Rede
Gerncia de Dados
Gerenciamento de Dados
Centralizados
Gerncia de Dados
Gerenciamento de Dados
Distribudos
Transparncia
Cliente
Ativo
Incio e final fixos
1. Manipulao de tela / janela
2. Interpretao de menu /
comando
3. Entrada de mouse / teclado
4. Entrada de dados e validao
5. Processamento de ajuda
6. Recuperao de erro
Oculta rede e servidores
Comunicao com diferentes
servidores
Comunicao Cliente - Cliente
Inclui
Exclui
Servidor
Reativo
Roda o tempo todo
1. Oferecer servios funcionais
2. Compartilhamento de dados na
aplicao
3. Compartilhamento de
dispositivos
4 - Redes de Computadores
Normalmente vrias perguntas so feitas para se tentar entender como clientes e
servidores se comunicam, que tipo de protocolo utilizado, e como um cliente encontra o
servidor desejado dentro de uma rede de computadores. Embora estas perguntas possam
parecer muito difceis, na realidade elas so relativamente fceis.
Existem vrios conceitos e aspectos comuns s comunicaes Cliente/Servidor
necessrios ao entendimento do funcionamento da comunicao. Nesta seo ser dada uma
viso geral sobre os conceitos bsicos de protocolos, passagem de mensagem, os aspectos de
conexo e sincronismo de processo.
4.1 - Protocolos
H duas dcadas, diversos esforos vm sendo traados para se estabelecer um padro
nico para redes de computadores. No entanto, foram definidos no apenas um, mas vrios
modelos de referncia.
16
O modelo OSI/ISO especifica todas as primitivas de comunicao para que haja troca
de mensagens entre as camadas (AMARAL,1993) (COMER,1993) (DUMAS,1995)
(RENAUD,1994) (TANENBAUM,1996). Cada camada adiciona um cabealho para que haja
uma identificao na mquina destino.
A figura 15 mostra os principais protocolos usados nas comunicaes Cliente /
Servidor baseados na Microsoft, Internet e IBM.
Microsoft
Internet
IBM
Aplicao
Canais Nomeados
RPC
APPC
Apresentao
(Named Pipes)
XDR
Sesso
NetBIOS
sockets
Transporte
LU 6.2
TCP
NetBEUI
Rede
IP
Enlace
IEEE LLC
Token Ring
Fsica
PU 2.1
SDLC
Ethernet
Par Tranado
Coaxial
18
Classe
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
1
1
1
1
A
B
C
D
E
ID da Rede
0
1 0
1 1 0
1 1 1 0
ID do Host
ID do Host
ID da Rede
ID da Rede
Endereo de Multi-Transmisso
ID do Host
Reservado
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Figura 16 - Classes do protocolo TCP/IP
Num. de Redes
Endereo de Rede
Num. de Hosts
Endereo de Hosts
128
0.0.0.0 - 127.0.0.0
+ 16M
0.0.0 - 255.255.255
16.284
128.0.0.0 - 191.255.0.0
65.136
0.0 - 255.255
+ 2M
192.0.0.0 223.255.255.255
256
0 - 255
D
E
224.0.0.0 239.255.255.255
240.0.0.0 255.255.255.255
Tabela 2 - Limite do nmero de redes e hosts em cada endereo IP
19
20
Quando a comunicao
finalizada, torna-se necessrio
desfazer a conexo para poder
liberar os recursos de rede
utilizados.
Deve-se notar que as
mensagens sempre chegam
ordenadas neste tipo de
conexo. Um exemplo de
comunicao
baseado
em
conexo o sistema telefnico.
HOST 1
HOST 2
A tabela 3 a seguir
compara os dois tipos de
comunicao.
Caracterstica
Baseado em Conexo
Sem Conexo
Tipo de Mensagem
Fluxo de dados
Datagrama
Rota
Esttica
Dinmica
Endereamento de Mensagem
Confiabilidade
Opes
No disponveis
Sincronismo
Explcito
Implcito
Overhead
Rota da mensagem
Processo
Respondedor
Aplicao (cont.)
APIs proprietrias (opcional)
Aplicao (cont.)
Aplicao (cont.)
Aplicao (cont.)
4
3
TCP/IP
DECNet
NetBEUI
Appletalk
Camadas superiores
Camadas Inferiores
Modelo
OSI/ISSO
Protocolo TCP/IP
Aplicao
Apresentao
Sesso
Aplicao
FTP, SMTP e DNS
Telnet
Transporte
Rede
Link de Dados
Fsica
TCP e UDP
IP, ARP e ICMP
Link de Dados
Fsica
SPX/IPX
A Internet utiliza o padro UDP, uma vez que as comunicaes baseadas no protocolo
TCP/IP se utilizam de portas de comunicao que, associadas aos sockets, permitem a troca de
mensagens.
O protocolo TCP/IP disponibiliza 999999 portas (comprovao emprica), sendo que
as portas de nmero 0 at a porta de nmero 1023 so reservadas para servios prdeterminados, como por exemplo a porta 23, para o servio Telnet, a porta 21 para o FTP, e
assim por diante. Devido a este limite, caso a Internet utilizasse o padro TCP, as mquinas
que respondessem a um nmero muito grande de acessos, acabariam limitando a sua
utilizao.
No padro UDP, por sua vez, quando existe uma solicitao de comunicao, o
endereo IP do remetente da mensagem segue junto com a mensagem para o destinatrio, de
forma que o disponibilizador do servio possa posteriormente enviar a resposta do servio
solicitado.
importante salientar que, para que as comunicaes transcorram normalmente, as
APIs no necessariamente precisam ser as mesmas, muito embora os protocolos devam ser os
mesmos, como pode ser visto na figura 22.
Funciona
No Funciona
Cliente
Servidor
Cliente
Servidor
Aplicao da
Rede
Aplicao da
Rede
Aplicao da
Rede
Aplicao da
Rede
API ( TLI)
Winsock API
Winsock API
Winsock API
TCP/IP
TCP/IP
TCP/IP
SPX/IPX
Os demais protocolos suportados pelo Windows NT, permitem a conexo com outros
tipos de plataformas, como pode ser visto na tabela 4.
Protocolo
Plataforma
NetBEUI
SPX/IPX
Apple Talk
Microsoft
Novell
Mcintosh
enquanto que o IPX, igual ao IDP, oferece um servio de datagrama, permitindo a conexo
entre mquinas do tipo PC que estejam rodando o Sistema Operacional de Rede da Novell
(RENAUD,1994).
Por sua vez, o protocolo Apple Talk permite a conexo com mquinas da plataforma
Macintosh, e um protocolo totalmente particular. Os principais protocolos usados por
mquinas Macintosh so os DDP - Datagram Delivery Protocol, ATP - AppleTalk
Transaction Protocol e ADSP - AppleTalk Data Stream Protocol (RENAUD,1994).
4.5 - Sockets
O Socket teve origem na Universidade de Berkeley, como sendo a API (Application
Programming Interface) de desenvolvimento do protocolo TCP/IP para o ambiente UNIX
(COMER,1993). Ele um dos mecanismos que o IPC possui para a troca de mensagens entre
processos.
Um Socket similar a um descritor de arquivo. Ele identifica o ponto final (endpoint)
para a comunicao e implementado como um inteiro positivo (ROBERTS,1995).
Existe uma diferena sutil, porm importante, entre descritores de arquivos e socket.
Um descritor de arquivo ligado a um arquivo ou dispositivo especfico quando criado pelo
comando open. Um descritor de socket no ligado a local algum quando criado pelo
comando socket. Uma aplicao pode decidir ligar-se a um endereo explicitamente usando
um comando bind, ou pode fornecer endereos dinamicamente quando envia datagramas
usando o comando send. Portanto, sockets podem ser usados como uma interface para
transportes de rede baseados em conexo e sem conexo (COMER,1993) (DUMAS,1995).
O socket, que um manipulador (handle), est associado a um largo conjunto de dados
armazenados na implementao do protocolo de rede. O termo socket usado no S.O. UNIX
para fornecer uma interface tipo arquivo s redes. Quando uma operao para criar um socket
chamada, o sistema retorna um manipulador, como descritor de socket. Esse descritor
usado em todos os outros comandos relacionados ao socket e intercambivel com o descritor
de arquivo usado em funes read e write.
Os dados associados ao socket incluem vrias informaes, como o endereo IP das
mquinas que esto se conectando, as portas dos dois lados da conexo TCP e o estado da
conexo corrente.
A camada de sockets dentro do contexto da comunicao corresponde a camada de
Sesso do Modelo OSI/ISO, que tem como funo o gerenciamento das sesses de
comunicao processo a processo entre os hosts. Ela tambm responsvel por estabelecer e
encerrar as conexes entre os aplicativos cooperantes (DUMAS,1995).
Dentro do protocolo TCP/IP, a camada TCP abrange a camada de Sesso e Transporte
do Modelo OSI/ISO, favorecendo diretamente a programao dos sockets sobre o protocolo
TCP/IP.
Para o ambiente Windows foi desenvolvido o Windows Sockets - Winsock, visando
facilitar a interconexo entre as estaes Windows, atravs do protocolo TCP/IP, que base
para o acesso a Internet. Windows Sockets uma interface aberta para programao em rede
sob o Microsoft Windows (QUINN,1996).
A especificao da interface do Windows sockets define claramente a diviso entre a
aplicao de rede e o protocolo da rede.
25
A sua verso mais recente o Winsock 2 (reviso 2.0.8 - 19/05/95). A verso 2.0 da
especificao do Windows sockets se associa a arquitetura que o Windows NT utiliza para
suportar mltiplos protocolos de fornecedores variados (QUINN,1996).
O Winsock API aumenta a funcionalidade dos sockets de Berkeley, ao acrescentar
extenses especficas do Windows para suportar a natureza orientada a mensagens do S.O.
baseado no Windows.
Todas as aplicaes que hoje em dia acessam a Internet diretamente da residncia do
usurio, usando FTP, E-mail, Finger, Telnet, SMTP, entre outros, utilizam os sockets como
base de comunicao, atravs do protocolo TCP/IP (ROBERTS,1995).
Os Sistemas Operacionais Windows NT e Windows 95 j possuem dentro de suas
bibliotecas, as rotinas para suportar a programao para o protocolo TCP/IP via sockets
(DAVIS,1994).
Para o ambiente Windows, o relacionamento entre as aplicaes e o ambiente de rede,
pode ser demonstrado na figura 23.
Aplicao 1
Aplicao n
Winsock.DLL
TCP/IP
Network card
Figura 23 - Relacionamento da biblioteca dos sockets no ambiente Windows
26
SERVIDOR
CLIENTE
Socket()
Socket()
Bind()
Listen()
Accept()
Connect()
Send()/ Recv()
Send()/ Recv()
CloseSocket()
CloseSocket()
Modelo
OSI/ISO
Aplicao
Apresentao
Modelo Windows
sockets
Aplicao Windows
sockets
Camadas
superiores
Sesso
Winsock
API
Camadas
Inferiores
Transporte
Protocolo TCP/IP
Rede
Link de Dados
Fsica
Driver de rede
Interface de rede
Pode-se notar que a interao da aplicao com o protocolo TCP/IP faz-se somente
pela API que o Windows sockets disponibiliza, minimizando assim maiores possibilidades de
gerao de erros.
Para que se estabelea uma comunicao no padro TCP, faz-se necessrio seguir uma
seqncia de operaes pr-definidas como ilustrado na figura 2.21. O diagrama de estado da
seqncia de conexo Stream Socket, pode ser visto na figura 27.
O Servidor deve ser sempre colocado no ar, antes de qualquer tentativa de
comunicao. Para esta abertura de conexo com sockets, necessrio que vrias funes da
biblioteca Winsock sejam chamadas.
A funo Socket define o socket, que um descritor a partir do qual a aplicao se
associar quando desejar transmitir uma mensagem. O Servidor, por sua vez, executa outras
duas funes que so disparadas em seqncia: a funo Bind, que associa o nmero de uma
porta com o endereo IP da mquina servidora, e a funo Listen, que fica escutando na
porta selecionada esperando que haja uma solicitao de conexo.
28
Quando a funo Connect for ativada pelo Cliente, uma solicitao de conexo para o
Servidor enviada e, caso a resposta a esta solicitao seja afirmativa, o Cliente e o Servidor
passam para o estado de conectado.
nomeado e
escutando
recebido requisio
de conexo
conexo
pendente
Bind() e
Listen()
fechamento
pendente
solicitao de
fechamento
Accept()
Closesocket()
Socket()
Connect()
abrir
conexo
chegada
de dados
Recv()
Preparado
para leitura
dados
recebidos
conectado
(escrevendo)
leitura de
todos
dados
chegada
de dados
OOB
Closesocket()
falha de
envio
leitura de
todos
dados
OOB
Preparado p/
ler dados OOB
socket
fechado
Buffers de
sada
Send()
No preparado
para escrita
falha de
envio
Uma vez estabelecida a conexo, a troca de mensagem passa a ser efetuada e a funo
Recv retira do buffer de leitura as informaes que foram trocadas entre o Cliente e o
Servidor. Caso no se consiga enviar alguma mensagem pela funo Send, por causa do
estouro da capacidade do buffer, os dados so armazenados e retransmitidos posteriormente.
Os dados OOB (Out-of_Band) possuem um nvel de prioridade de transmisso acima
dos outros dados. Isto possibilita uma alterao na seqncia a ser transmitida, porm esta
interferncia na seqncia fica transparente ao usurio.
Ao trmino da comunicao, o Cliente utiliza a funo CloseSocket para fechar a
conexo, liberando a porta do processo filho do Servidor para ser ligada a outro processo de
comunicao. O Servidor s ir utilizar esta funo quando ele for desligado.
Portanto, primeiro o Servidor posto no ar (1), em seguida o Cliente escolhe o nome
de Servidor e a porta no qual sera feita a conexo (2a) e solicita uma conexo (2b), quando a
conexo aceita, o Servidor cria um processo filho, numa nova porta TCP/IP (3), associando
o pedido do Cliente esta porta, permitindo assim a troca de mensagens (4), deixando a porta
29
original da conexo do Servidor livre para efetuar novas conexes, como pode ser visto na
figura 28.
(1) Servidor no ar
Porta 2450
(2 b) Solicitao de Conexo
Servidor
(3) Criao
Processo Filho
Cliente
(2a) Cliente no ar
Nome do
servidor e Porta
2450
4o ) Comunicao Cliente/Servidor
Servidor
Processo Filho
do Servidor
Porta 1111
Figura 28 - Criao de Processo Filho para a comunicao
Caso ocorra uma perda de conexo, tanto por parte do Cliente quanto pelo Servidor
sem antes ter sido efetuada a funo CloseSocket, quem ainda estiver no ar no poder
reutilizar a porta que estava sendo utilizada at que o seu fechamento se d de forma correta.
Para evitar que problemas desta natureza possam vir a ocorrer, necessrio o
desenvolvimento de uma funo de Time-out, de modo a proporcionar um nvel de segurana
ainda maior para as conexes.
A funo de Time-out fica checando se existe troca de informaes nas conexes
existentes, e permite que a funo CloseSocket seja ativada automaticamente ao se verificar a
inexistncia de qualquer tipo de troca de mensagem aps um determinado tempo,
possibilitando assim a otimizao das portas do protocolo TCP/IP.
DB2
Sybase / Oracle
OpenODB /
Persistence
BDO Esttico
BDO Ativo
O2 / Ontos / ODI /
Objectivity / POET /
Versant
GemStone / Itasca
/ Matisse / IDB
para um BDR
para o outro. Contudo, quando uma quantidade grande de objetos transferida, primeiramente
eles so empacotados para minimizar os acessos a rede.
5.2.2 - SGBDOO GemStone
O OODBMS GemStone (GEMSTONE,1997), que utiliza a tcnica de objetos
distribudos, oferece uma arquitetura Cliente/Servidor escalvel e robusta com o seu sistema
de controle de objetos. A comunicao do GemStone se baseia no ORB (Object Request
Broker), que por sua vez utiliza o CORBA (Common Object Request Broker Architecture)
para organizar os padres dos objetos que serviro para a troca de mensagens. A OMG
(Object Management Group) garante ento, os padres de interoperabilidade entre os sistemas
de objetos gerenciados pelo CORBA, como visto nas figuras 30 e 31.
A OMG deliberou os seguintes padres de trabalho para o Inter-ORB:
o GIOP (General Inter-ORB Protocol) que especifica o formato das
mensagens e a representao dos dados para toda a intercomunicao do
ORB. O GIOP garante, portanto, que a ordenao dos bytes transmitidos
no so problemas entre os ORBs existentes.
o IIOP (Internet Inter-ORB Protocol) que permite a ligao entre o GIOP e
o protocolo de comunicao TCP/IP.
O CORBA 2.0 possui ambos os protocolos de comunicao: o GIOP e o IIOP.
A arquitetura de objetos distribudos do CORBA estende os limites do GemStone para
as linguagens de objetos adicionais, interfaces de programao de aplicaes e para servios
no objetos.
A adoo da padronizao CORBA garante a interoperabilidade entre os diversos
sistemas de objetos nas empresas.
A grande migrao da indstria de sistemas monolticos para sistemas distribudos, fez
com que a OMG focasse o CORBA como seu ponto de ao central, reunindo seus esforos
para a padronizar os objetos componentes de sistemas de informaes distribudos.
A plataforma Windows desenvolve seus aplicativos baseados na tecnologia de objetos
distribudos atravs do COM (Component Object Model) e o OLE (Object Linking and
Embedding).
32
33
6 - Concluso
Atualmente, a maioria das empresas est migrando para a computao distribuda,
atravs de uma arquitetura Cliente/Servidor. Por ser uma rea nova, necessrio o
investimento em equipamentos, pessoal, treinamento e servios para conseguir responder a
demanda deste mercado globalizado.
A importncia e a credibilidade desta tecnologia podem ser verificadas em funo de
grandes empresas, tais como: Oracle, Sybase, Informix, Digital e IBM, que desenvolveram
solues para atender a essa nova plataforma. Esta oferece acesso a dados localizados em
diferentes Servidores, sem que o usurio perceba que eles podem estar vindo at de pases
diferentes, realidade facilmente conseguida atravs da Internet. Esta facilidade permite uma
integrao entre micros, mainframes e redes, a fim de se obter o melhor que a computao
distribuda pode oferecer.
Este relatrio apresentou as caractersticas bsicas da arquitetura Cliente/Servidor.
A arquitetura Cliente/Servidor demonstra que veio realmente para ficar, e nada indica
que um novo modelo esteja prestes a tirar o seu lugar.
Para acompanhar o avano tecnolgico nesta rea, esta arquitetura foi implementada
no SIGO (Sistema Gerenciador de Objetos) (MOURA,1997), transformando-o de um sistema
monousurio em um sistema multiusurio (DESCHAMPS,1997).
34
Referncias Bibliogrficas
1.
2.
3.
4.
5.
6.
7.
8.
9.
Role
in
CORBA
System
About
Object
Database
22. (QUINN,1996) Quinn, Bob & Shute, Dave Windows Sockets Network Programming
Addison Wesley, 1996
23. (RENAUD,1994) Renaud, P. E. Introduo aos Sistemas Cliente/Servidor IBPI Press,
RJ 1993.
24. (ROBERTS,1995) Roberts, Dave Developing for the Internet with Winsock Coriolis
Group Books, 1995.
25. (RUMBAUGH,1994) Rumbaugh, James et al Modelagem e Projetos baseados em
Objetos Ed. Campus, Rio de Janeiro, 1994.
26. (SALEMI,1993) Salemi, Joe. Banco de Dados Cliente/Servidor . IBPI Press, 1993.
27. (TANENBAUM,1995) Tanenbaum, Andrew S. Distributed Operating Systems Prentice
Hall, 1995.
28. (TANENBAUM,1996) Tanenbaum, Andrew S. Computer Networks Prentice Hall,
Third Edition, 1996.
29. (TAROUCO,1986) Tarouco, L. M. R. Redes de Computadores. McGraw-Hill ,SP
1986.
30. (VIDAL,1994) Vidal, Paulo Csar Salgado. Modelagem
Cliente/Servidor Orientada a Objeto. Tese de Mestrado, IME, 1994.
36
para
Arquitetura