De que se trata o artigo

O artigo trata de demonstrar de uma maneira clara a utilização das tecnologias Cliente-Servidor e Multicamadas, realizando comparativos e ilustrando as vantagens de se utilizar multicamadas no desenvolvimento de novas aplicações.

Em que situação o tema é útil

O tema é útil em situações em que o leitor já possui sistemas desenvolvidos com a tecnologia Cliente-Servidor, porém, deseja migrar para o ambiente Multicamadas. Neste caso, o artigo trata os principais pontos de dúvida sobre a migração e suas principais vantagens.

Migrando de Cliente-Servidor para Multicamadas

O assunto do momento é conectividade. Como tornar sua aplicação capaz de se comunicar com ambientes heterogêneos sem grandes esforços e com alta performance e disponibilidade? A resposta pode ser mais simples do que parece. Neste artigo iremos ver como proceder para que sua aplicação Delphi projetada na arquitetura Cliente-Servidor seja modificada a fim de atender as mais novas necessidades do mercado, utilizando o que há de mais novo no seu RAD Studio.

Até um bom tempo atrás, desenvolver aplicações apenas para ambiente Desktop era praticamente uma unanimidade e justamente nessa época a arquitetura Cliente-Servidor reinou, sendo adotada pelos desenvolvedores Delphi em sua grande maioria. Até então, todo o acesso ao banco de dados era realizado via rede local, com aplicações sendo executadas em ambientes Windows e certas vezes em Linux (seja por Kylix, Lazarus ou mesmo através de emulação), porém, os tempos mudaram. As aplicações que antes eram simplesmente acessadas em ambientes internos (dentro da própria empresa) vêm sendo refatoradas ou reescritas com a finalidade de atender as novas exigências de mercado.

No nosso novo quadro de requisitos, os clientes/usuários desejam acessar as aplicações via Web por meio de páginas, consultar e enviar informações através de Web Services, comunicar-se com aplicações desenvolvidas em outras plataformas, realizar integrações constantes de maneira transparente e rápida e mais recentemente, a utilizar Tablets e Smartphones. Cada vez mais a presença deles pode ser notada. Podemos citar seus usos frequentes em restaurantes ou deliveries onde os garçons realizam pedidos diretamente da mesa, sem a necessidade de se deslocar ao caixa. Este pedido já é automaticamente enviado para a cozinha, onde o prato é preparado e o tempo de espera é cada vez menor. Outra situação que ilustra este quando refere-se à parte financeira. Já é parte do cotidiano que os gestores consultarem informações do fluxo financeiro da empresa diretamente por seus Smartphones, independente do local, pois muitas vezes estão em viagem ou entre as mais variadas diversidades. A partir disto, surge principal pergunta abordada por este artigo: “Sua aplicação está preparada para suprir estas novas exigências?”.

Desde os primórdios do Delphi fomos introduzidos aos conceitos de aplicações “online”, podendo citar como exemplo algumas das tecnologias mais utilizadas na época (muitas delas em uso até hoje) como o IntraWeb (para criação de páginas), DCOM, COM+ e BSS (para aplicações distribuídas, ver Nota do DevMan 1) e ultimamente, mas não tão recente assim, as apresentações do Prism, RAD PHP e o reformulado e novo DataSnap. Mesmo com todas estas tecnologias, vários desenvolvedores continuam com suas aplicações escritas em arquiteturas cliente-servidor, ou em outros casos, criando novas aplicações do início através desta mesma arquitetura, adotando ainda Delphi 5 ou 7 e consequentemente deixando de aproveitar muitos dos benefícios das últimas versões.

Nota do DevMan 1

DCOM (Distributed Component Object Model), COM (Component Object Model) e COM + são tecnologias arquitetadas pela Microsoft que viabilizam a comunicação entre aplicações client/server, realizada através de interfaces. O BSS (Borland Socket Server) é uma solução baseada em Sockets na qual utiliza a tecnologia COM+ para o desenvolvimento de aplicações multicamadas. Diferentemente do COM+, utiliza um executável como servidor de aplicação ao invés de uma DLL. Já o Intraweb é uma tecnologia que utiliza o desenvolvimento para Web baseada em CGIs.

A Embarcadero desde o lançamento do Delphi 2009 vem investindo cada vez mais no desenvolvimento de aplicações “online” através do DataSnap, como o tema da vez é conectividade, todas suas atenções desde o RAD XE2 estão voltadas à possibilidade de reutilizar seu conhecimento em Object Pascal para a criação de Softwares para as mais variadas plataformas. Podemos citar a introdução a criação de aplicativos para iPhone por meio do FireMonkey, Windows Phone por meio do Prism XE2 ou Android, através do RAD PHP como vimos recentemente em uma excelente série de artigos publicados pelo Giuliano, aqui mesmo na Clube Delphi. Isto sem considerar a facilidade de integração com outros ambientes através do JSON, também introduzido a partir da versão 2009 (ver Nota do DevMan 2).

Nota do DevMan 2

O JSON (Javascript Object Notation) é uma espécie de padronização para transporte de informações entre ambientes heterogêneos e que tem como linguagem o JavaScript.

Com o passar do tempo e a chegada das novas versões, novos conceitos são apresentados de forma cada vez mais simples, de maneira que hoje para criar a base de uma aplicação multicamadas do início, bastam alguns cliques e já é possível testar métodos, comunicação com as portas e etc. Deste modo, devido à tamanha simplicidade e todas as vantagens dadas (que serão abordadas a seguir), não há justificativa para iniciar aplicações em outra arquitetura que não seja multicamadas. Deste modo o presente artigo tem por finalidade servir como um guia para desenvolvedores que desejam migrar suas aplicações ou mesmo iniciar novos projetos adentrando neste modelo de desenvolvimento.

Comparativo entre as arquiteturas

A arquitetura C-S (cliente-servidor, como vou me referir daqui em diante) segue um modelo baseado em duas camadas. Neste caso a primeira camada é representada pelo banco de dados e a segunda refere-se aos aplicativos que se comunicam diretamente com a camada de dados. O maior problema deste modelo de arquitetura diz respeito à manutenção dos projetos. Muitas vezes, uma simples alteração que demanda apenas a adição de um novo campo interno ou mesmo mudança das regras de negócio faz com que seja necessária a compilação de todo o projeto, fazendo necessária a distribuição do Software para atualização de todos os usuários do sistema. Em muitos casos os desenvolvedores optam por realizar a modularização da aplicação por meio de BPLs, e, embora esta solução ajude em alguns casos, ainda assim será necessária a distribuição das partes alteradas para os possíveis clientes.

Diferentemente do modelo C-S, a arquitetura multicamadas promove uma maior independência entre as partes do projeto, desacoplando a camada responsável por dados das camadas visuais. Em situações como esta anteriormente mencionada, apenas a aplicação servidora necessitaria ser atualizada, fazendo com que isto fique “transparente” ao seu cliente. Esse sem dúvida nenhuma é um dos grandes benefícios/diferenciais da escolha deste modelo e que influencia diretamente na manutenção do projeto. Entre várias outras vantagens em relação a arquitetura convencional, podemos citar as principais que referem-se a distribuição geográfica (possibilidade de trabalhar de qualquer localidade com alta performance), separação das regras de negócio e interface (GUI – ...

Quer ler esse conteúdo completo? Tenha acesso completo