Integração Web em Aplicativos FiveWin Por Vailton Renato Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Quando se fala em “integração” WEB em aplicativos FW o que lhe veem à cabeça? • Será que é apenas LER dados de uma HTML com FW? • Seria talvez fornecer dados que estão em FW para uma página web? Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Na realidade vamos analisar um pouco mais sobre isto... Iremos falar sobre: • Obter dados externos com FWH • Fornecer dados ao mundo • Ferramentas de integração disponíveis Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] 1º Exemplo: Preciso ler dados que estão em uma página web – mas como fazer? Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] 1º Exemplo: Preciso ler dados que estão em uma página web – mas como fazer? • Não se desespere! • O que você precisa saber sobre HTML: ele é apenas TEXTO. • Se é texto, pode ser manipulado como qqer TEXTO pois é oq ele é! Veja ex1 e ex2 e depois considere no prox. slide Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Resumo breve: trabalhar com dados na Internet é trabalhar com TEXTO! Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Resumo breve: trabalhar com dados na Internet é trabalhar com TEXTO! • Se o resultado é texto, pode ser manipulado como qqer TEXTO usando AT(), SUBSTR(), RAT(), LEFT(), RIGHT(), etc... • Se operar sobre o resultado é fácil, qual é entao o problema de se trabalhar com web muitas vezes? Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Qual é o grande segredo (e muitas vezes) a grande barreira enfrentada ao se puxar Informações da internet ? • Resposta: A conexão com o servidor onde está a informação! • É necessário levar-se em conta se é HTTP, HTTPS, FTP, SSH, SOAP, REST, etc... Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Quais opções temos para se puxar dados de uma determinada página? •Opção 1 de 3 - WinSock nativa do Windows, disponibilizada no FW. Muita coisa tem que ser manual e aparentemente ela não suporta SSL (protocolo de segurança). •Exemplo webclien.prg na pasta samples Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Quais opções temos para se puxar dados de uma determinada página? • Opção 2 de 3 - HBTIP É nativa do compilador e é multi-plataforma baseada na WinSock. Mesmo código roda em Windows, Linux, MAC OS, FreeBSD, etc. Já possui muita coisa pronta. Ela acessa HTTP, FTP, MAIL, etc... Na nova implementação tb suporte SSL Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Quais opções temos para se puxar dados de uma determinada página? •Opção 3 de 3 – Acesso via COM. Alguns protocolos podem ser acessado por ferramentas de terceiros que oferecem suporte à varios protocolos. Como Exemplo disto temos a dica do Dorneles sobre ”Cotações: Dolar, euro” postada em 16/11/09 conforme exemplo do Manuel Mercado sobre como pegar informação em um site. Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] •Opção 3 de 3 – Acesso via COM. Outro exemplo no caso via SOAP é o exemplo do Pocket Soap no Fórum do PC Toledo! Agora que a Microsoft abandonou o MSSOAP, o melhor é usar PocketSoap, este é um exemplo que roda perfeitamente: local oEnvelope := Win_OleCreateObject( "PocketSOAP.Envelope.2" ) local oHttp := Win_OleCreateObject( "PocketSOAP.HTTPTransport.2" ) oEnvelope:EncodingStyle = "" oEnvelope:SetMethod( "InvertStringCase", "http://www.dataaccess.com/webservicesserver/" ) oEnvelope:Parameters:Create( "sAString", "THIS IS LOWER - this is upper" ) oHttp:Send( "http://www.dataaccess.com/webservicesserver/textcasing.wso?WSDL", oEnvelope:Serialize() ) oEnvelope:Parse( oHttp ) MsgInfo( oEnvelope:Parameters:Item( 0 ):Value ) Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] FWH Lendo dados Web? • Sim e muito bem! Certamente podemos contar com isto para puxar dados de vários locais. • Qual o próximo desafio? Se podemos ler os dados, o que fica faltando então? Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] A próxima etapa é fornecer dados para WEB usando aplicativos FWH. Mas como fazer???? Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] FWH fornecendo dados para WEB Temos várias opções dentre elas são: • Funções e Classes Nativas do FWH Características: single-thread, single process. • Nativas do Harbour Características: Multi-thread, multi-process. Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] FWH fornecendo dados para WEB Funções e Classes Nativas do FWH Exemplo do WebServer Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Como fornecer dados para WEB (não necessariamente com FW) Nativas do Harbour Características: Multi-thread, multi-process. Exemplo Flexlista – xml – Adobe Flash – PHP Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Informação adicional: fornecendo dados à web com CGI Suporte à CGI-BIN Exemplos: BOL, Itau, Registro WebNet Podemos criar um CGI-BIN com .BAT, Clipper e Harbour! Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Fornecendo dados à web com CGI Existem várias LIBs que ajudam-nos à criar aplicativos CGI. Dentras as opções brasileiras podemos citar: •WebWap Link: http://www.vagucs.com.br/webwap.php •wxWeb Link: http://code.google.com/p/wxweb/ Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Como fornecer dados para WEB Nativas do Harbour Características: Multi-thread, multi-process. Exemplo Flexlista – xml – Adobe Flash – PHP Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] O que é a wxWeb? É um conjunto de funções e classes que visam auxiliar o desenvolvimento de aplicativos voltados para internet. É inspirada no PHP e busca facilitar o máximo a vida do programador. É de código aberto e você pode usar sem custo algum tanto para projetos comerciais ou não. Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Integração Web em Aplicativos FiveWin Vailton Renato – [email protected] Integração Web em Aplicativos FiveWin Dúvidas?