Na
Internet existem grupos para tratar dos mais diversos assuntos. Um grupo
pode ser visto como se fosse um "mural eletrônico" onde as pessoas
colocam questões, opiniões, respostas a questões, etc. pertinentes ao tema
do grupo. Todos os usuários da Internet, em tese, têm acesso a estes "murais
eletrônicos".
Entre estes grupos temáticos existe um que
trata do assunto cliente/servidor cuja identificação é comp.client-server. Regularmente
leio as mensagens que são colocadas neste grupo. Uma delas me chamou a atenção pelo
fato de coincidir com o esforço atual que a CELEPAR vem empreendendo no sentido de
assimilar a tecnologia cliente/servidor. Esta mensagem, cuja tradução e adaptação
encontra-se abaixo, foi incluída no grupo por Bernard Robertson-Dunn, de Camberra,
Austrália (brd@netinfo.com.au). Cliente/servidor,
a estória real
Ambiente do Negócio
O ambiente dentro do qual um negócio
moderno opera tem apresentado mudanças que apontam para modificações nos requerimentos
dos sistemas. Estão incluídas entre estas mudanças as seguintes:
a) Existe uma recusa em estar preso à
arquitetura, ao conjunto de produtos ou ao destino de um único fornecedor.
b) Existe um novo ambiente nos
empreendimentos:
- A estrutura era hierárquica, agora é
horizontal e baseada em grupos.
- O relacionamento entre os colegas era
distanciado, agora é integrado.
- A fonte da riqueza era o capital, agora é o
conhecimento.
- O foco do gerenciamento eram as finanças,
agora é a informação.
- O estilo gerencial era de controle
centralizado, agora é de delegação.
- A abrangência do mercado era local, agora
é global.
- A chave do investimento era no operacional,
agora é no suporte aos que trabalham com o conhecimento.
Orientações de negócio
Existem também mudanças nas atividades
internas dos negócios, freqüentemente devido à competição e/ou outras pressões de
performance. Estas mudanças incluem:
a) Mudanças na forma de organização,
passando de hierarquias de muitos níveis para hierarquias mais enxutas, contemplando
gerenciamento em rede e gerenciamento baseado em grupos fortemente integrados.
A abordagem baseada em grupos (team
based approach) significa que:
- Sistemas alinhados funcionalmente não são
apropriados.
- Os grupos ao desempenharem múltiplas
funções e apresentarem múltiplas habilidades, necessitam acessar múltiplas
aplicações.
- As aplicações precisam prover uma
consistente interface com os usuários.
- A complexidade existente na implementação das aplicações
deve ser ocultada.
- A interação com o usuário deve ter flexibilidade.
b) Muitas organizações estão sob um Processo de
Reengenharia de Negócio. Isto significa que muitos processos antigos de negócio estão
sendo repensados e redesenvolvidos usando tecnologias mais avançadas. Alguns dos mais
comuns requerimentos identificáveis durante um esforço de reengenharia de negócio são:
- O cliente ter um único ponto de contato para tratar de
negócios com a organização e os múltiplos contatos que fizer serão através de uma
mesma pessoa.
- Sistemas informatizados suportarão todas as atividades de
negócio executadas na organização, não apenas uma parte.
- Os usuários dos sistemas informatizados executarão o maior
número possível de procedimentos durante o tempo de um contato com o cliente.
- O tempo requerido para completar a tarefa deverá ser
minimizada.
- Mais autonomia para o staff, disponibilizando um
registro (trilha) para auditar as ações.
- Informações consistentes entre as diversas aplicações.
- Os sistemas informatizados devem estar preparados para
evoluir de forma a refletir as mudanças nos requerimentos do negócio.
- Os usuários devem estar aptos a modificar regras de
negócio sem consultar os técnicos da área de informática.
- A integridade dos processos transacionais deve ser
garantida.
- Dispor de variados estilos de interfaces com os usuários
para refletir as necessidades de trabalho (por exemplo: uma tarefa voltada ao cliente
necessita ser centrada no cliente, usuários da área financeira precisam de um foco sobre
a contabilidade).
Modelos de negócio
Quando se analisa um negócio, existem três visões da
organização:
- Uma estrutura funcional, que reflete responsabilidades e
tarefas organizacionais.
- Um modelo de processo, que detalha as funções da
organização (por exemplo: aceitar pedidos, produzir mercadorias, expedir mercadorias,
cobrar clientes, receber pagamentos). A estrutura funcional e o modelo de processo
raramente se harmonizam, se é que isto acontece em algum momento.
- Um modelo de informações, que detalha as informações que
a organização necessita para funcionar.
Arquitetura da aplicação
A arquitetura da aplicação deveria refletir os vários
requerimentos do negócio, como acima delineado.
As arquiteturas tradicionais das aplicações têm se baseado na visão funcional. Isto é
insuficiente nos tempos atuais. É inflexível, pois modela o que as pessoas fazem não o
que a organização faz e cerceia os caminhos pelos quais a organização pode mudar.
A abordagem cliente/servidor implementa em camadas as três visões da organização:
- A camada de interface com o usuário, que implementa o
modelo da estrutura funcional.
- A camada de funções de negócio, que implementa o modelo
de processo.
- A camada de dados, que implementa o modelo de informações.
A razão porque é chamada de cliente/servidor é porque um
dos alvos desta arquitetura é desacoplar uma camada das outras. Portanto, o
relacionamento entre os processos é distanciado, implementado através de um mecanismo de
pedido/resposta de acordo com um protocolo prescrito.
A figura 1 apresenta um diagrama que representa uma arquitetura cliente/servidor REAL.
Cada uma das linhas representa um relacionamento pedido/resposta na abordagem
cliente/servidor. Note-se que não há qualquer menção sobre multiplataformas GUI,
redes, SGBDs ou qualquer outro aspecto tecnológico.

FIGURA 1
Algumas características da arquitetura de uma aplicação cliente/servidor são:
- Deve suportar o relacionamento muitos-para-muitos entre
clientes e servidores.
- Cada servidor deve estar apto a suportar muitos clientes
concorrentemente.
- Cada cliente deve estar apto a efetuar diversos e
concorrentes pedidos aos servidores.
- Um servidor deve estar apto a tornar-se cliente de outro
servidor.
- Clientes e servidores podem estar replicados ao longo do
sistema.
Requerimentos de tecnologia
O melhor caminho, ao que parece, para implementar a
arquitetura acima é a seguinte:
- Coloque a interface de usuário em uma estação de trabalho
pessoal. Este equipamento é o que melhor se ajusta às necessidades event-driven de
uma interação com o usuário. Nem todos os processos da interface com o usuário
precisam residir em uma estação de trabalho pessoal. Estações de trabalho pessoal não
são ambientes confiáveis, nenhum dado deve ser armazenado nelas, a não ser que você
possa se dar ao luxo de perdê-lo.
- Dados de interesse da organização devem ser armazenados em
um ambiente confiável e precisam ser manuseados de forma apropriada.
- O uso de computadores de médio porte, nos quais implementar
a camada de funções de negócio deverá refletir as necessidades da organização. Um
negócio com um certo número de escritórios em filiais e um único escritório central
provavelmente vai ser implementado em uma arquitetura tecnológica diferente de um
negócio com muitos departamentos, cada um deles com muitos escritórios em filiais, com
escritórios regionais e com um escritório central.
- A tecnologia é um compromisso entre os requerimentos de
implementação de uma estrutura funcional (que inclui os aspectos geográficos) e a
arquitetura de informações.
- Os requerimentos de tecnologia de uma abordagem
cliente/servidor são diferentes, especialmente onde as aplicações são distribuídas
por muitas plataformas.
Algumas constatações finais sobre
cliente/servidor
- Não se deve confundir tecnologia e aplicação.
- Um aspecto critico da arquitetura cliente/servidor são os
requerimentos das múltiplas aplicações (isto é muito mais complexo que o
particionamento de uma única aplicação).
- A indústria de tecnologia da informação não deveria
estar trabalhando sob os paradigmas desenvolvidos e promovidos por companhias de pesquisa
de mercado. No meu ponto de vista o pessoal de pesquisa de mercado é responsável por
muita confusão sobre cliente/servidor.
- A tecnologia suporta e disponibiliza cliente/servidor, ela
não o define. Arquiteturas cliente /servidor e tecnologias cliente/servidor são
questões diferentes.
|