DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Técnicas Avançadas: DataSnap XE - Artigo ClubeDelphi 130

Utilização dos novos recursos encontrados no DataSnap XE como a transferência de objetos, autenticação de usuários, gerenciamento de sessões cliente/servidor, gerenciamento de conexões com qualquer banco de dados e controle de redundância.





ClubeDelphi 130

[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]

> Clique aqui para ler todos os artigos da ClubeDelphi 130


Como já exibido há tempos em edições anteriores da revista Clube Delphi, o DataSnap existe muito antes do Delphi XE aparecer. Em 1997 a Borland lançou o Delphi 3 e juntamente integrado a ele estava o MIDAS (Multitier Distributed Application Services), tecnologia que seguiu com esse nome até 2001, com o lançamento do Delphi 6, e foi renomeada para DataSnap. A biblioteca MIDAS muito antes do Delphi XE já era sinônimo de alto desempenho na criação de aplicações distribuídas que até antes do Delphi 2009 eram baseadas nas tecnologias DCOM, COM+ e BSS.

Vale lembrar que todas estas tecnologias derivaram do antigo COM, criado pela Microsoft em 1993 para suportar comunicação entre processos e muito utilizada em controles Active X, OLE, OLE Automation. O principal problema do DCOM (Distributed Component Object Model) foi a problemática da queda de performance conforme a conexão de clientes aumentava.

COM+ (versão melhorada do antigo Component Object Model) em outro caso, apresentava melhor performance em relação a este problema, porém, ainda utilizava o servidor de aplicação baseado em DLL, o que gerava um problema de distribuição e muitas vezes manutenção. Já o BSS (Borland Socket Server) era uma mistura de tudo isso, utilizando DCOM e Sockets, servidor de aplicação baseado em executável (e não mais DLL), porém, até este modelo que persistiu até a versão 2007 do Delphi, ainda havia a dependência com a tecnologia COM+.

A partir da versão do Delphi 2009 o DataSnap começou a ter uma evolução significativa. A dependência da tecnologia COM+ foi eliminada, e tanto o DataSnap quanto o Framework dbExpress sofreram grandes modificações, dando origem ao novo modelo de desenvolvimento multicamadas. O Delphi 2009 certamente foi um divisor de águas em relação à tecnologia multicamadas. A arquitetura de desenvolvimento de aplicações distribuídas possuía muito mais performance e mais simplicidade no desenvolvimento.

A versão 2009 marcou também o início do suporte à linguagem de notação JSON (Java Script Object Notation) que nada mais é que uma estrutura de dados Java Script muito leve e podendo ser dezenas de vezes mais rápida que a mesma representação de dados em XML. Vale lembrar que a maioria das linguagens já suporta JSON.

Na versão 2010 o mesmo suporte a JSON veio como o principal responsável pela volta do Callback, que não estava presente na versão anterior, iniciou-se também o suporte a servidores REST, transportando dados com notação JSON nativamente. Um outro grande marco desta versão caracterizava a disponibilização do código-fonte da então “fórmula mágica”, o MIDAS, que poderia ser facilmente melhorado. REST é a abreviação de Representational State Transfer ou Transferência de estado representacional. Ele surgiu da tese de doutorado sobre a Web, escrita por Roy Fielding, que foi um dos idealizadores do protocolo HTTP.

Na versão XE do RAD Studio foram realizadas mais melhorias consideráveis em relação às versões anteriores, lembrando que a compatibilidade entre as versões foi mantida. Na última versão foi possível trafegar, sem problemas, dados suportados tanto pelo dbExpress quanto dados JSON.

Para exemplificar melhor, todas as melhorias citadas até aqui, será exposto de maneira simples como utilizar um servidor DataSnap sem criar Transactional / Remote Data Modules (dependentes da tecnologia COM). Outra grande novidade, que facilmente é implementada, é o gerenciamento de conexões com o banco de dados, recurso comumente chamando de Pool de conexões e que embora poucos saibam, é suportado pelo dbExpress desde muito antes disso. Será apresentada a utilização de Generics para o manuseio deste Pool, a partir das conexões recebidas e gerenciadas pelo próprio servidor.

O transporte de objetos entre cliente e servidor utilizando classes genéricas, o que aumenta significativamente a possibilidade de utilização de POO entre as aplicações cliente e servidora, o que é demonstrado aqui por meio de uma classe de cadastro de CEPs.

Também é visto o conceito de redundância de servidores, que resolve um velho problema. Em todos os modelos de aplicação multicamadas (inclusive no DataSnap), quando a aplicação servidora fica indisponível (devido a problemas de conexão, por exemplo), a aplicação cliente torna-se inutilizável. Uma das grandes novidades das novas versões do DataSnap é justamente a facilidade de se implementar um gerenciador de servidores, transferindo a conexão com a aplicação servidora antiga para um novo servidor, que faz com que o problema se torne transparente.

 

Nota do DevMan

Para quem é desenvolvedor de aplicações multicamadas de longa data os recursos de Failover não são novidade, porém, antes eram implementados de forma muito mais trabalhosa. Este recurso permite que em caso de indisponibilidade de um servidor de aplicação outro assuma, tornando a aplicação cliente disponível novamente e evitando aborrecimentos. Este tipo de problema de indisponibilidade pode ocorrer de várias maneiras como quedas de conexão (perda do link de internet), problemas de rede ou infraestrutura, atualizações sem sucesso entre muitas outras. A solução de Failover permite que seja implementado não um, mas quantos servidores forem necessários para o caso de falha, bastando apenas redirecionar a conexão para a porta e host do outro servidor de aplicação ativo.

Já o conceito de Callback existe desde o começo do desenvolvimento de aplicações distribuídas. Trata-se de troca de mensagens entre aplicação servidora e cliente. Após a remoção do vínculo com a tecnologia COM na versão 2009, o novo modelo que surgia (DataSnap) acabou perdendo a funcionalidade de Callback, que após estar entre a lista de desejos para a nova versão, teve seu retorno na versão 2010, sendo realizado por meio da troca de mensagens via JSON.

 

 

Nota do DevMan

COM é a abreviação para Component Object Model que deu origem a COM + (uma versão melhorada). Consiste em uma plataforma da Microsoft para componentes de software lançada em 1993. Ela é usada para permitir a comunicação entre processos e a criação dinâmica de objetos em qualquer linguagem de programação que suportem a tecnologia. O termo COM é frequentemente usado no desenvolvimento de software para se referir a um grupo de tecnologias que incluem OLE, OLE Automation, ActiveX, COM+ e DCOM.

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Alexandre José Gonçalves Da Silva
Analista de Sistemas graduado em Sistemas de Informação e Pós-graduado em Engenharia de Software pela PUCPR. Trabalha com diversas tecnologias e linguagens de programação, sendo Delphi a principal e desde 1999. Membro atuante em diversas comunidades e sempre defendendo com muito entusiasmo e paixão ...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03