=left>Será que toda a sua clientela está disposta a pagar por isso? Vejamos como trabalhar com a portabilidade, visando manter apenas um único padrão para sistemas de duas ou n-camadas.

Escolhendo o caminho

Mais uma vez estamos vivenciando uma quebra do paradigma na construção de um software. O mundo está voltando os olhos para objetos distribuídos e arquiteturas orientadas a serviços. Nosso leque de opções para o desenvolvimento de um sistema cresce a cada dia e um bom gerente de projetos deve saber discriminar a tecnologia a ser empregada em cada caso.

A programação multicamadas também está inserida nesse contexto, no tocante a quando e como deve ser utilizada. O box Vantagens da arquitetura relembra alguns tópicos importantes na tomada de decisão.

A euforia de estarmos sempre inovando e usando as últimas novidades do mercado, pode acabar levando a alguns erros no planejamento de um software. Raramente adotaríamos uma arquitetura multicamadas para uma padaria ou uma farmácia. Para um projeto de grande porte, servidores de aplicações geralmente são aconselhados, pois seu custo é inferior ao da atualização periódica de todo o maquinário da empresa. Isso não acontece em pequenos projetos com poucas máquinas.

Existe ainda um outro conceito, chamado sensibilidade, que também deve ser levado em conta. Se inserirmos uma nova camada em nossa aplicação, certamente teremos uma queda de performance que, às vezes, é quase imperceptível. É preciso saber quanto o seu cliente suportaria de atraso no acesso às funcionalidades do sistema. Desse modo, poderemos levantar os dados necessários à escolha da infra-estrutura a ser utilizada.

Frameworks OO

A engenharia de software oferece uma eficiente solução para diversos problemas relacionados ao desenvolvimento de sistemas. Frameworks de aplicações Orientados a Objetos são conceituados como softwares inacabados, destinados a certo domínio do problema e possuem como fundamentos a abstração, herança, composição e modularização. Têm como resultados esperados: alta produtividade, maior qualidade do produto final, redução nos custos e maior manutenibilidade do software.

Para a construção de um framework OO, faz-se necessária uma equipe com conhecimentos avançados em diversos tópicos como a ferramenta em questão, o tipo de software a ser desenvolvido e principalmente Orientação a Objetos (abstração). Alguns conceitos específicos, ditados pela engenharia de software, também são indispensáveis, outros, como design patterns, melhoram substancialmente a qualidade do projeto.

Contudo, esse processo de construção geralmente não é realizado da melhor maneira. Muitas empresas não investem corretamente na construção do mesmo. Desse modo, não conseguimos o resultado esperado. Uma das soluções mais usadas nesse caso é a terceirização.

Visão mercadológica

Existem hoje muitas empresas que mantêm simultaneamente clientes com alto e baixo poder de investimento. Isso resulta em alguns produtos portadores da arquitetura cliente/servidor e outros n-camadas. Tais empresas, chegam a certo ponto em que gostariam de utilizar a mesma infra-estrutura de uma aplicação de três camadas, em aplicações de duas camadas. Isso mostra a necessidade de portabilidade de código entre as aplicações. Como conseguimos isso? Uma boa saída seria o uso de um framework comum a ambas as arquiteturas. Assim, usufruiríamos de todos os recursos relacionados anteriormente. Aí entra o DataSnap.

Voltando nosso foco ao Delphi, podemos observar que algumas empresas adotam uma saída não muito adequada para conseguir essa portabilidade. Diversas vezes chegam a colocar o cliente e o servidor rodando em cada estação de trabalho da empresa, emulando uma arquitetura em duas camadas (Figura 1). O programa cliente se comunica com a camada de regras de negócios que, por sua vez, se comunica com o SGBD como em uma arquitetura em três camadas; porém, como o servidor de aplicações roda em cada máquina, temos uma emulação de duas camadas. 

 

...

Quer ler esse conteúdo completo? Tenha acesso completo