Archive for the ‘Zope’ Category

Interação Delphi – Zope/Plone com XML/RPC

9/08/2006

Ontem implantei em um cliente um programa desktop feito em Delphi e com alto uso de TClientDataSet (para quem não conhece pense em uma classe para simular tabelas de banco de dados em memória), os dados que alimentavam alguns TClientDataSets vinham através de XML/RPC de um servidor Zope/Plone através da biblioteca dxmlrpc.

Esta biblioteca parece um pouco abandonada, e apesar do protocolo está bem implementado precisou de algumas atualizações:

  • Suporte para Indy 10 (biblioteca que implementa protocolos para internet)
  • Suporte para autenticação (a falta disto praticamente inviabilizava a postagem de dados para o zope)
  • Suporte para especificação do encoding para o XML enviado (sem isto todos os acentos causavam erros)

    Tentarei enviar um patch para o autor nos próximos dias (preciso dar uma polida no código primeiro).

    O programa desktop tinha um objetivo bem definido: Permitir o cadastramento de dados off-line para o seu posterior envio em lote para o servidor Zope.

    Além do ganho de velocidade no cadastramento (sem espera entre a gravação de um registro e uma nova tela para cadastro) deixamos o servidor mais livre para as atividades de consulta e podemos escolher o melhor horário para o envio dos novos dados.

    O interessante aqui é que o Delphi (ambiente usado para geração do programa cliente) não possui suporte nativo a XML/RPC deixando apenas a solução via requests HTTP ou Web Services disponíveis, porém, esta última depende de uma série de bibliotecas externas serem instaladas no servidor.

    Acredito que a solução via XML/RPC (através do dxmlrpc) tenha simplificado e muito todo o processo, tornando mais simples a criação de clientes em Delphi para o servidores Zope.

    Anúncios