Receber informações de um coletor de dados via post e enviar um resultado

13 respostas
J

Bem pessoal, este deve ser um dos primeiros tópicos que implemento.
meu problema é o seguinte.
Temos uma aplicação em coletores de dados, verifica codigo de barras para autenticação, e no coletor foi criado uma aplicação em Vb, nestes coletores o sistema operacional é o windows mobile. esta aplicação envia a informação o codigo via post para uma maquina local.
como a aplicação toda do site é php, estamos utilizando tbm o site localhost para coleta destes dados.
a proposta aqui eh para implementar uma solução desktop.
vcs conhecem algum material, livro, tutorial, apostila, pai de santo que resolva este problema…
o pior q tenho prazo…
implementei um servidor para comunicação com varios clientes. mas parei agora neste impasse.
estou pensando tbm implementar algo em java para o coletor. não sei ainda.

Me ajudem.

obrigado

13 Respostas

J

Bem pessoal, minha duvida e´a seguinte…
Como faço para receber estes dados enviados pelo coletor…
Ele envia para um endereço http://localhost
pelo método POST.
Preciso receber este POST, consultar na Base de Dados e retornar uma autenticação.
Me Ajudem…

Jefferson

fantomas

Oi…

Vc disse que o coletor envia os dados para http://localhost

Perguntas:

  1. O software que está no coletor é web? Apesar de parecer óbvio resolvi perguntar mesmo assim.

  2. O endereço apontado é uma referencia para a própria máquina, ou seja o coletor, não seria outro endereço?

  3. Como é a estrutura da mensagem enviada pelo coletor? É um grande string, xml ou um objeto serializado?

flws

J

Desculpe…
REspondendo…

  1. um dos programadores desenvolveu um aplicativo no VB para controlar as respostas do Coletor de Dados, ainda não me informei direito, mas o aplicativo lê um xml com as informações para envio, e manda via POST a informação que deve ser autenticada.
  2. desculpe, na verdade é o endereço da maquina que irá receber esta informação via Post, esta maquina estará conectada a um roteador Wire… e os Coletos enviam para ela a informação que deve autenticar.
  3. uma string contento o valor do codigo de barras…

se puder me ajudar…

Obrigado.

fantomas

Se entendi direito a coisa toda, não deveria ser dificil implementar isto.

Se o coletor realmente tem condições de enviar alguma coisa via protocolo HTTP vc poderia fazer o seguinte:

  1. Utlizando o PHP (não conheço esta linguagem, confirmei com outro profissional) vc pode (tem como fazer) receber coisa enviadas com o método POST.

  2. Com Java vc pode utilizar o TomCat como webserver e construir um Servlet e receber as informações tambem.

Nas duas opções você tem que ter condições de alterar o endereço no colotor, por exemplo:
Se no coletor o endereço destino estiver http://EndereçoServidor/Sistema/AlgumaCoisa você deverá alterar para http://EnderecoServidor/Sistema/MeuServlet (no PHP não sei como é que é, acredito que seja o nome de um arquivo PHP).

flws

J

Entendi…
Bem no PHP é bem simples…
a aplicação envia para um arquivo.php este recebe o POST e imprime a autenticação.
Mas gostaria de saber se daria pra fazer sem ter que rodar o tomcat…
apesar que as maquinas que recebem a informação do coletor estarem todas com apache, pois rodam a aplicação em localhost.

Bem aqui o pensamento de um dos diretores é fazer uma aplicação desktop…

fantomas

O fato de vc não poder utilizar um web server pode complicar as coisas, porque vc precisa de uma implementação do protocolo HTTP (servidor) para resolver o request do coletor.

Vc tem a liberdade de “envolopar” o string enviado pelos coletores em um XML definido por você?

flws

fantomas

Alterar para algo parecido / igual a isto?

<?xml version="1.0" encoding="ISO-8859-1"?>
<methodCall>
   <methodName>minhaaplicacao.autenticar</methodName>
   <params>
       <param>
            <value><string>4578767823453498</string></value>
       </param>
   </params>
</methodCall>

flws

J

Vou ver se existe esta possibilidade…
mas estou entendo …
bem desculpe tantas perguntas…sempre fui um entusiasta Java, mas aqui no interior paulista eh muito complicado trabalhar em projetos ligados ao java, agora começando a aumentar,…
mas agradeço sua especial ajuda.

Jefferson

fantomas

Oi,

Então…

Se vc puder ajustar os parametros de execução dos coletores, existe a possibilidade de você utilizar um componente chamado XML-RPC.

Com ele vc terá o total controle da execução dos requests dos coletores através de serviços em um desktop ou até mesmo em um web server. Ele é pequeno, rápido, simples de utilizar e implementa muito bem o protocolo http.

P.S Talvez haja outros componentes similares a este, caso vc não goste deste.

flws

J

Cara.
Umas semanas atrás estava com um pensamento em fazer com ouma espécie de chat. Não sei se entendeu. Tipo:
Como meus coletores transmitem em rede wire… e no momento do evento colocamos um roteador simples com wirelle…
Estive com um pensamento do seguinte, a maquina que guardaria a base de dados para os coletores autenticarem o códigos de barras, teria uma aplicação servidor e os coletores transmitiriam como em um chat, envia a informação, o servidor receberia, faria a consulta a base de dados, se estivesse ok, atualizaria a tabela do autenticado e retornaria uma informação a ser tratada pelo coletor.
Duvidas heinnn…
acho q to maluco não sei…

fantomas

rsrsrsrsrs…

Não sei se entendi direito, mas não me pareceu uma ideia absurda não.

Qualquer coisa, detalha a idéia ai pra gente dar uma olhada.

flws

J

minha ideia partiu do seguinte.
anos atras, quando ainda estava iniciando…, mas precisamente quando comprei o Livro: Java Como Programar 3ª Edição, iniciei a implementação de sockets. o livro exemplificava um chat simples, um cliente e servidor. a partir dai como proposta do livro, elaborei vários clientes e um servidor. Até ai blz. Logo depois tentei implementar o mesmo chat com Swing. não funcionou legal, mas tudo bem.
Minha idéia partiu dai. vamos supor, os coletores com uma aplicação cliente, se for possível pois os coletores tem como SO Windows Mobile, transmitindo o tempo todo para um servidor, usando socket TCP, pois preciso manter a integridade da informação, meu medo é a velocidade, pois os coletores devem ler o código de barras e retornar a informação de Ok ou Negado, rápido para que, no caso nosso, a fila de entrada não empaque.
Acho que passei de forma clara a idéia…
Não sei acho absurda, apesar de o Gerente de sistemas gostar da idéia, mas ele tem muita experiência em C e muito pouca com Java.
No meu caso, estou enferrujado, pois à muito tempo trabalho só com PHP, me afastando do desenvolvimento em J…
Será loucura ou não?

fantomas

Interessante…

Acredito que seja perfeitamente possível montar este tipo de projeto.

O risco de obter baixa performance existe, mas não por causa do Java e sim pela arquitetura / qualidade do código; já que vc disse que está “enferrujado” e outro profissional conhece linguagem C.

Ao meu entender vcs iriam utilizar, na pior das hipóteses apenas servlets; e todo o trabalho de administrar as conexões https ficariam para um possível componente ou um web server.

O resultado final seria a impressão de que os coletores estariam sendo atendidos simultaneamente e que não existiriam fila nenhuma.

Acho que vale a pena fazer um estudo em cima e fazer um pequeno protótipo para “sentir” o resultado.

flws

Criado 11 de março de 2009
Ultima resposta 23 de mar. de 2009
Respostas 13
Participantes 2