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.
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).
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 – ...
Confira outros conteúdos:
Instalando o ACBr
Mapeamento Objeto-Relacional com TMS...
Introdução aos componentes JEDI
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.