Por que eu devo ler este artigo:Este artigo apresenta o desenvolvimento de um sistema multicamada que faz uso de conceitos como SaaS (Software como Serviço) e que pode interoperar com qualquer linguagem de programação.

Desta forma, será utilizado como backend e regras de negócio um servidor WCF (Windows Communication Foundation) Data Services do .NET Framework utilizando os conceitos de REST (Representational State Transfer) e como frontend uma aplicação em Delphi VCL. O servidor irá acessar uma base de dados SQL Server, expondo através de métodos os dados ali existentes.

Todo o acesso a esse banco de dados é realizado através do Entity Framework, que é a ferramenta gratuita de mapeamento relacional da Microsoft.

A aplicação cliente irá consumir os serviços expostos por esse servidor, realizando um mapeamento entre esses dados e um TClientDataSet e através do recurso de Live Bindings irá carrega-los em um formulário para permitir sua edição.
Autores: Guinther Pauli e Jones Granatyr

Os SaaS estão se tornando cada vez mais comuns dentro das empresas devido aos grandes benefícios que sua utilização pode trazer, tais como diminuição de custos e acesso fora do ambiente empresarial. Porém, para que eles atinjam seus objetivos, necessitam de uma série de requisitos para atender seus usuários, visto que geralmente, são centenas ou até milhares de conexões simultâneas solicitando recursos de um mesmo servidor.

Por isso, uma arquitetura de SaaS deve estar pronta para atender a esse tipo de demanda, e a escolha de determinadas tecnologias para seu desenvolvimento é de suma importância para atingir esses objetivos.

Um tipo de arquitetura que se torna natural ao desenvolvimento de SaaS é o modelo multicamadas, pois ele apresenta praticamente todas as características necessárias para a construção dos mesmos. Esse modelo é caracterizado basicamente pelo fato de que a aplicação cliente jamais acessa diretamente o banco de dados como no modelo cliente servidor tradicional (duas camadas).

Em suma, pelo menos três camadas são necessárias, ou seja: (I) banco de dados, (II) servidor de aplicação e (III) apresentação. A camada do banco de dados, como o próprio nome sugere, é onde ficará armazenado o SGBD, enquanto que na segunda camada ficarão todas as regras de negócios e a lógica de acesso aos dados.

Por fim, a camada de apresentação é a que fornecerá a interface para que o usuário interaja com o sistema e realize as operações.

Fazendo uma analogia deste modelo com a aplicação exemplo desenvolvida neste artigo, nossa primeira camada será o SQL Server, a segunda será um servidor .NET WCF com REST e finalmente, a última camada será constituída de uma aplicação cliente em Delphi que fará acesso ao servidor WCF.

A arquitetura multicamadas apresenta uma série de vantagens sobre o modelo cliente servidor tradicional, como por exemplo: modularização, facilidade de redistribuição, clientes leves, economia de conexões ao banco de dados, escalabilidade, independência de localização, linguagem de programação e SGDB. Podemos notar que este modelo apresenta muitos benefícios, podendo-os utilizar a nosso favor no desenvolvimento de arquiteturas para SaaS.

De todas essas características, a que mais está relacionada ao escopo deste artigo é a independência de linguagem de programação, na qual será dado maior foco neste momento.

Para que exista independência entre linguagens de programação, é necessário existir uma camada de software entre a aplicação e o sistema em questão chamada middleware, o qual tem o objetivo básico de converter os dados de um formato para outro com o intuito de garantir a compatibilidade entre ambos. Existem diversas tecnologias de middleware no mercado atualmente.

O próprio DataSnap do Delphi atualmente pode entrar nesta categoria, visto que nas últimas versões do IDE essa tecnologia ganhou independência de protocolos proprietários, fato que possibilita a criação de frontends nas mais diversas linguagens de programação.

Além disso, outro modelo que vem sendo bastante utilizado é a disponibilização de serviços utilizando os conceitos ...

Quer ler esse conteúdo completo? Tenha acesso completo