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.
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.