Esse artigo faz parte da revista Clube Delphi edição 105. Clique aqui para ler todos os artigos desta edição



Delphi Core

Aplicações multicamadas com BSS

Criando sistemas multicamadas utilizando Borland Socket Server - Parte I

 

Neste artigo veremos

·         Criação do banco de dados de modelo;

·         Criação de uma solução multicamadas de alta escalabilidade;

·         Configuração do ambiente de desenvolvimento;

·         Entendimento da arquitetura, tecnologia e dicas para implementação;

Qual a finalidade?

·         Desenvolver qualquer tipo de aplicação que permita acesso pela internet, unida a alta performance, sendo aplicável a qualquer segmento de software.

Quais situações utilizam esses recursos?

·         Qualquer ambiente que necessite de grande disponibilidade, empresas que possuam sistemas complexos ou integração entre matrizes e filiais.

 

Resumo do DevMan

         Sistemas multicamadas têm sido amplamente discutidos nas comunidades de tecnologia, no entanto, muitos desenvolvedores ainda possuem receios em migrar seus softwares cliente-servidor para esta arquitetura ou iniciar aplicações deste tipo, devido à falta de conhecimento ou até mesmo por achar a implementação muito complexa.

Neste artigo veremos como desenvolver um sistema em multicamadas utilizando as tecnologias DataSnap e BSS (Borland Socket Server), abordando as principais maneiras para a construção do ambiente, além dos principais conceitos para o desenvolvimento de uma aplicação com qualidade.

 

        

A cada dia o crescimento de usuários que navegam na internet se torna maior, isto se deve ao fato de que este meio de comunicação nunca esteve tão acessível a todos, devido às inúmeras opções de provedores que oferecem os mais variados planos. Claro que com tanta facilidade, os usuários deste serviço querem cada vez mais disponibilidade para desfrutar da web. Como no cenário empresarial não poderia ser diferente, cada vez mais as empresas de tecnologia têm investido grandes esforços para disponibilizar suas aplicações e serviços de forma performática, produtiva e atendendo as características que cada vez mais tem atraído os usuários de sistemas: a possibilidade de acessar seu software de qualquer lugar, e a qualquer momento. 

Quando necessitamos fazer uma solução deste porte, a primeira situação que nos vem à cabeça é que devemos desenvolver algo totalmente voltado para web, mas veremos que podemos desenvolver soluções win32 que atendam esses requisitos com êxito.

Neste artigo iremos utilizar a tecnologia DataSnap para a construção e integração das nossas aplicações cliente e servidora, juntamente com o BSS (Borland Socket Server) para realizarmos a comunicação entre as camadas.

Assim sendo, vamos criar uma aplicação simples na qual simule o empréstimo de livros de uma biblioteca, utilizando todas estas tecnologias citadas e ainda aplicando algumas práticas que podem elevar a produtividade do desenvolvimento. Antes de começarmos a desenvolver é fundamental conhecer como será o comportamento do nosso ambiente. Após uma breve explicação sobre este modelo iremos dar início a criação do nosso banco de dados de exemplo.

O modelo multicamadas

Geralmente ouvimos tanto falar nos termos três camadas quanto em multicamadas, na verdade, ambos são a mesma coisa, porém três camadas refere-se a divisão comum que compõe qualquer tipo de aplicação deste escopo, sendo banco de dados, aplicação cliente e aplicação servidora,  mais DLL’s, bibliotecas de funções, ou até mesmo outras aplicações servidoras podem ser consideradas camadas extras.

A receita do bolo trata três quesitos básicos para o desenrolar do projeto. O primeiro consiste no banco de dados. O aconselhável neste tipo de ambiente é que seu banco de dados possua o mínimo possível de objetos (procedures, triggers, views), e tarefas realizadas dentro de si, para que assim seja fácil tornar seu servidor multi-bancos sem grandes ajustes.

O próximo quesito é o servidor de aplicação, este concentra todas as regras de negócios, instruções SQL, todas as tarefas pesadas e complexas são delegadas a ele.

E por último, a aplicação cliente que é composta pela camada de apresentação dos dados para o usuário, e não possuem vínculo direto com o banco de dados, sendo telas realizando requisições ao servidor de aplicação e contendo algumas validações simples a nível de consistência, para que os dados sejam aplicados ao banco de dados, separando as regras de negócios das regras de consistência.

Todo este canal de comunicação entre as camadas é realizado pelo BSS (Borland Socket Server), que nada mais é do que uma tecnologia baseada em DCOM (Distributed COM), funcionando por meio de Sockets que diferente de SOAP que se comunicam através de XML, os Sockets comunicam-se por meio de protocolos TCP ou UDP.

Na Figura 1 podemos ver uma ilustração de como é realizada a comunicação entre todo o ambiente. Após esta explicação vamos dar início a modelagem e criação do nosso banco de dados.

 

Figura 1. Exemplo da interação entre as camadas

 

Nota: É importante atentarmos para diferença de regras de negócios e regras de consistência. As regras de negócios são as tarefas diretamente relacionadas à persistência dos dados, enquanto as regras de consistência são responsáveis pelas validações simples na camada de apresentação, fazendo com que os dados sejam enviados ao servidor de aplicação já validados e prontos para serem salvos.

 

Criação do banco de dados

A Figura 2 mostra o relacionamento entre as tabelas do nosso sistema de bibliotecas, que basicamente é composto por pessoas, editoras, livros e seus itens. A explicação para a tabela de itens de livros se deve ao fato de que um mesmo livro possui várias cópias, e cada uma delas um código que identificará sua disponibilidade, e por último a tabela de empréstimos com seus itens.

 Para o exemplo, utilizarei o banco de dados Firebird 1.5, porém, o que será mostrado poderá ser aplicado ou adaptado a qualquer outro banco dados em uma versão de sua preferência. A Figura 2 apresenta a modelagem sugerida para o nosso sistema, e em seguida os scripts para sua criação conforme a Listagem 1. Para a execução dos scripts utilize um gerenciador como IBOConsole ou IBExpert.

 

Figura 2. Modelagem de dados do sistema

 

Listagem 1. Script para a criação do banco de dados

 

SET SQL DIALECT 3;

SET NAMES WIN1252;

 

...

Quer ler esse conteúdo completo? Tenha acesso completo