Artigo Clube Delphi 107 - Web Services no Delphi for PHP

Artigo da Revista Clube Delphi Edição 107.

Web Services no Delphi for PHP

Compartilhe serviços via web e integre sua aplicação com clientes e fornecedores

 

Que atire a primeira pedra quem nunca precisou gerar ou ler um arquivo texto em um projeto de integração. Sim, isso é mais comum em desenvolvimento de software que podemos imaginar. Certa vez estava eu em uma empresa, feliz e sorridente tocando minha vida quando meu superior veio dar a notícia de que toda parte de pagamentos e cobranças da empresa seriam automatizadas através de integração com os bancos que trabalhávamos. Para variar os pagamentos dos prestadores de serviços e parceiros eram feitos através de um único banco, já a cobrança. Essa era feita por três bancos diferentes. Isso mesmo: três instituições bancárias.

Pois bem, lá fui eu entrar em contato com os bancos para poder obter a documentação dos sistemas. Em alguns dias minha caixa de email estava repleta de arquivos .pdf contendo dezenas de páginas cada um. Era um tal de CNAB 080 para cá, CNAB 240 para lá. Regras do Banco do Brasil aqui, definições da Caixa Econômica Federal ali, enfim! Em pouco tempo tinha tanta documentação para ler que já não fazia mais nada.

 

Nota do DevMan

O padrão estabelecido pelo CNAB (Centro Nacional de Automação Bancária) foi criado para permitir a troca de arquivos entre bancos e clientes.  O objetivo destes arquivos é intercambiar informações digitalmente entre o sistema de informática do banco e o do cliente. Dentre as informações podemos citar: cobrança (boletos bancários), pagamentos, extrato (para conciliação), débito em conta, e custódia de cheques. Cada um destes produtos tem seu fluxo de informação e, portanto um layout. O arquivo contém texto puro e colunas fixas definidas pela FEBRABAN, cada banco, por possuir suas próprias peculiaridades, tem suas variações que são previstas dentro do padrão. Estes arquivos são enviados ou recebidos de diversas formas, mas principalmente através do site do banco.

 

Mas o que isso tudo tem haver com Web Services? Nada! E este foi todo o problema. Por trabalhar com integração com arquivos texto a FEBRABAN, ou melhor, os bancos têm que disponibilizar suas regras e padrões através de extensas documentações. Isso tudo para que seus clientes possam gerar os arquivos dentro do que se espera, e para que a integração possa ser feita de maneira segura e eficiente. Isto toma muito tempo e ainda temos outros inconvenientes. Um arquivo texto não se auto descreve como um arquivo XML. Por isso as vastas documentações, para nos informar quem é quem nas milhares de linhas com dezenas de caracteres que temos que enviar e receber nesta integração.

No cenário exposto acima, os Web Services cairiam como uma luva. Eles nos poupariam horas de leituras de documentação uma vez que o próprio descritor de serviço (WSDL), já nos exibiria os serviços disponíveis, assim como os objetos a serem enviados. Óbvio que a documentação não seria extinta, mas se resumiria apenas às regras do negócio e não em páginas e páginas de layout de registros com posição inicial, posição final, tamanho e tipo. Assim, nós estaríamos consumindo um ou mais serviços através dos Web Services que as instituições financeiras disponibilizariam para seus clientes. Neste cenário, nós desenvolvedores, ou melhor, as aplicações, estariam atuando como clientes destes Web Services. Mas vamos a outro cenário.

 

Ententendo a lógica

Imagine que você trabalha em uma grande empresa, como por exemplo uma editora. A direção da empresa decidiu automatizar o processo de vendas para permitir que seus grandes clientes coorporativos possam efetuar seus pedidos de forma automática, sem a intervenção humana. Não seria ótimo? Reduziria-se assim o tempo de digitação das notas, possíveis falhas humanas no processo, um custo de compra menor para o cliente, uma reposição Just-in-time e muito mais. Porém você está em um dilema: como oferecer este tipo de serviço ao cliente? Conceder uma senha para acessar o banco de dados e executar uma instrução de inserção no mesmo? Ou então fazer como os bancos. Vamos criar longas documentações com padrões de arquivos .txt e  iniciar  a brincadeira.

Aqui mais uma vez, os Web Services podem nos auxiliar. Que tal disponibilizar para seus clientes um serviço Web onde ele possa nos enviar um lote com os produtos que necessita? Toda a informação necessária para o processo será descrita no WSDL, cabendo ao cliente simplesmente consumir o serviço e informar os dados, e mais: nosso Web Service poderia ainda ter outros recursos que retornassem o status de um pedido feito pelo cliente, dados de faturamento e muito mais. Agora, neste cenário a aplicação seria a provedora dos serviços e não mais cliente.

A partir de agora veremos como funciona um Web Service. Tomaremos ciência de toda a tecnologia envolvida no processo, conheceremos a arquitetura, protocolo de comunicação e muito mais. Na seqüência, vamos criar nosso primeiro Web Services utilizando Delphi for PHP, e com isso disponibilizaremos serviços para que nossos clientes possam consumir independente da linguagem que utilizem ou plataforma que desenvolvam. Então vamos nessa!

 

Entendendo os Web Services

" [...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados