Cliente / Servidor - uma visão vinda da Austrália

Autor: Dante Carlos Antunes - GPT

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.