GPRS TCP/IP y Web (GSM128)
GPRS TCP/IP y Web (GSM128)
Cuando se pretende que varios modem sea antendidos por un servidor, (CLIENTE-> SERVIDOR)un servidor tipo web por ejemplo es una muy buena opción, desde luego tiene que entenderse que el servidor tiene como objeto "Recibir" infomación y guardarla o desplegarla en forma dinamica, con JSP o mediante Applets por ejemplo, un servidor Web tipo Apache o Tomcat no tiene ningún inconveniente en hacer esta función y de hecho asi funciona Internet.
La unica diferencia de forma es que los "browser" de los "clientes" en nuestro caso son dispositivos electronicos, que envian información de forma automatica, hasta alli la cosa no tiene ningún inconveniente , ya que basta saber la direccion Web del servidor para establecer una comunicación y recibir y enviar información desde el cliente algún comando tipo GET/POST triviales pueden servir al proposito
Este modelo es similar al de una urbanización con muchos apartamentos , la direccion general es la de la urbanizacion y los numeros de los apartamentos es el socket , entonce para enviar una informacion, debo
colocar en el sobre de una información hipotetica , la dirección del apartamento (direccion IP) y el número
del apartamenteo (Socket) , asi la información llega a una única parte sin problemas,utilizo una compañia de de correos (TCP/IP) y el contenido de la carta la escribo en Espanol (Http)
Una cosa disitnta es cuando lo que se pretende es que el "Servidor" , trate de ser atendido por el "Cliente",
en este caso, (SERVIDOR->CLIENTE), el dueño del apartamento no se puede comunicar con el remitente de la información, de la misma forma o sea marcando la dirección de apartamento , porque se renvia la información a si mismo, necesitamos una forma alterna para hacerlo.
De que forma procedemos en la vida real ?, para resolver este problema, pues tenemos varias formas , Llamamos por telefono, enviamos un SMS , enviamos un e-mail", etc., pero debe observarse que en todos los caos se parte de que se tiene los datos del cliente (telefono,PIN,e-mail etc)
En todo caso usamos un medio alternativo, lo mismos ocurre con la comunicación entre el "Servidor" y el "Cliente", (SERVIDOR->CLIENTE) cual es el inconveniente para usar el mismo canal, sencillo , puedo usar la misma compañia de correos TCP/IP , pero para hacerlo necesito antes de enviar la carta la dirección de la urbanización y el apartamento , cosa que eventualmente puedo conocer ,y no habria ningún problema , pero sucede , que el la comunición con el computador entre "Servidor" y "Cliente", el Servidor casi nunca conoce la dirección del Cliente, puede uno preguntarse y como hacemos para comuncarnos con todos los servidores de Web del mundo sin problema, simple, porque las direcciones de los "Servidores", son públicas y hay un directorio de ellas, "DNS", servidor de nombre de dominio , que convierten IP de la forma , "190.249.18.107" a un nombre como hhtp://cac9.no-ip.com, pero los clientes no son públicos , no se enuentran en ningún DNS. por eso no se pueden conseguir en la Web, con otro inconveniente , los clientes por lo general son dinamicos , es decir las compañias proveedoras de IP, los están cambiando permanentemente, en lo que se conoce como servidores de direcciones IP, DHCP, este mecanismo es el que se usa para los cientes de GPRS, en el cual estamos tratando de conectar el ENFORA GSM128.
Pero la solución existe y ya se planteó en este mismo articulo, de forma suscinta, los servidores DNS, la propuesta es simple de enunciar, hay que crear un servidor DNS, para la comunicacion entre los clientes y el servidor Web de la red GPRS, para la aplicación propia.
Consiste en lo siguiente:
Se crea un servidor tipo web, con una base de datos , MySql puedría ser, con dos campos , en uno esta un identificador unico para cada modem ENFORA GSM128 (ID), la ubicacion GPS, podria servir , o cualquier otro codigo que sea único para cada modem y en el otro campo colocamos la IP a la que apunta la red GPRS en cada momento.
Ejemplo :
ID IP
Lumibot0001 192.168.1.10
Lumibiot0101 200.156.1.20
Cyon100110 198.167.5.15
AFAFA0101 202.76.15.9
El modem hace un Wakeup (despierta) cada periodo de tiempo y consulta si su dircción IP, ha cambiado, si lo ha hecho , debe comunicarse con el servidor de DNS propio, que hemos creado y reportarle su nueva dirección IP, así cuando el servidor Web, desee enviarle un mensaje un modem ENFORA GSM128 particular,por ejemplo al Cylon100110, se comunica con el servidor con su DNS , toma la dirección inscrita alli, para este modem 192.167.5.15 y establece la comunición por la misma compañia de correos que se esta utilizando, TCP/IP, a la cual ya se le puede dar la dirección IP de el modem porque la tiene inscrita.
Pero esperen , un momento, sucede que la carta de nuesto amigo, no va en "Espanol" (Http), nuestro destinatario es Francés y no conoce el Espanol (Http), que hacemos entonces, no podemos envirle nuestros comandos POST/GET de forma directa porque el no habla este idioma, (el Modem no tiene protocolo Http, solo TCP/IP), nos toca entonces , traducir nuestra carta a Frencés antes de enviarla, para eso debemos hacer un Parcer ("analizador de información y convertido de protocolo") para ponerla en un formato que el remitente si pueda leer. hay que hacer entonces un META-LENGUAJE que permita efectuar esta función, que verifique que ambos extremos de la comunicación se entienden.
No es diicil es simple , es crear unas variables y pequeños comandos que ambos sistemas entiendan por ejemplo
(01) ONOFF = .T. /*encienda el dispositvo*/
(02) LEEVOL = .T. /*Lea el voltaje*/
(09) ESPERE = 50 /*Espere 50 milisegundos*/
(11) RESET = .T. /*Reinicie l equipo*/
El numero que antece el comando el el codigo del mismo.
La cadena que enciende el dispositivo, espera que el sistema se estabilice, lee el voltaje y se reinicia es la siguiente:
en cristiano : ONOFF=T&ESPERE=50&LEEVOL=T&RESET=T
en el parser : 01T0950025011T
En resumen:
El cliente se comunica con el servidor Web mediante TCP/IP, usando Http y el Socket 80 y los comandos POST/GET.
Entre el servidor y el cliente se crea un servidor DNS con las identiifcaciones unicas del modem ENFORA-GSM128 y su IP asignada por la compañia provedora de GPRS.
Se crea un META-LENGUAJE , para que el cliente se entienda con el servidor cuando no usa POST y/o GET.
El Servidor Web , se comunica con el servidor DNS, para obtener la dirección del cliente al que va enviar un mensaje, coloca su información en un Parcer para que coloque la información en el forma que el cliente entienda, habre un canal TCP/IP con el cliente y le envia la información.
Carlos Arturo Castaño G
Cuando se pretende que varios modem sea antendidos por un servidor, (CLIENTE-> SERVIDOR)un servidor tipo web por ejemplo es una muy buena opción, desde luego tiene que entenderse que el servidor tiene como objeto "Recibir" infomación y guardarla o desplegarla en forma dinamica, con JSP o mediante Applets por ejemplo, un servidor Web tipo Apache o Tomcat no tiene ningún inconveniente en hacer esta función y de hecho asi funciona Internet.
La unica diferencia de forma es que los "browser" de los "clientes" en nuestro caso son dispositivos electronicos, que envian información de forma automatica, hasta alli la cosa no tiene ningún inconveniente , ya que basta saber la direccion Web del servidor para establecer una comunicación y recibir y enviar información desde el cliente algún comando tipo GET/POST triviales pueden servir al proposito
Este modelo es similar al de una urbanización con muchos apartamentos , la direccion general es la de la urbanizacion y los numeros de los apartamentos es el socket , entonce para enviar una informacion, debo
colocar en el sobre de una información hipotetica , la dirección del apartamento (direccion IP) y el número
del apartamenteo (Socket) , asi la información llega a una única parte sin problemas,utilizo una compañia de de correos (TCP/IP) y el contenido de la carta la escribo en Espanol (Http)
Una cosa disitnta es cuando lo que se pretende es que el "Servidor" , trate de ser atendido por el "Cliente",
en este caso, (SERVIDOR->CLIENTE), el dueño del apartamento no se puede comunicar con el remitente de la información, de la misma forma o sea marcando la dirección de apartamento , porque se renvia la información a si mismo, necesitamos una forma alterna para hacerlo.
De que forma procedemos en la vida real ?, para resolver este problema, pues tenemos varias formas , Llamamos por telefono, enviamos un SMS , enviamos un e-mail", etc., pero debe observarse que en todos los caos se parte de que se tiene los datos del cliente (telefono,PIN,e-mail etc)
En todo caso usamos un medio alternativo, lo mismos ocurre con la comunicación entre el "Servidor" y el "Cliente", (SERVIDOR->CLIENTE) cual es el inconveniente para usar el mismo canal, sencillo , puedo usar la misma compañia de correos TCP/IP , pero para hacerlo necesito antes de enviar la carta la dirección de la urbanización y el apartamento , cosa que eventualmente puedo conocer ,y no habria ningún problema , pero sucede , que el la comunición con el computador entre "Servidor" y "Cliente", el Servidor casi nunca conoce la dirección del Cliente, puede uno preguntarse y como hacemos para comuncarnos con todos los servidores de Web del mundo sin problema, simple, porque las direcciones de los "Servidores", son públicas y hay un directorio de ellas, "DNS", servidor de nombre de dominio , que convierten IP de la forma , "190.249.18.107" a un nombre como hhtp://cac9.no-ip.com, pero los clientes no son públicos , no se enuentran en ningún DNS. por eso no se pueden conseguir en la Web, con otro inconveniente , los clientes por lo general son dinamicos , es decir las compañias proveedoras de IP, los están cambiando permanentemente, en lo que se conoce como servidores de direcciones IP, DHCP, este mecanismo es el que se usa para los cientes de GPRS, en el cual estamos tratando de conectar el ENFORA GSM128.
Pero la solución existe y ya se planteó en este mismo articulo, de forma suscinta, los servidores DNS, la propuesta es simple de enunciar, hay que crear un servidor DNS, para la comunicacion entre los clientes y el servidor Web de la red GPRS, para la aplicación propia.
Consiste en lo siguiente:
Se crea un servidor tipo web, con una base de datos , MySql puedría ser, con dos campos , en uno esta un identificador unico para cada modem ENFORA GSM128 (ID), la ubicacion GPS, podria servir , o cualquier otro codigo que sea único para cada modem y en el otro campo colocamos la IP a la que apunta la red GPRS en cada momento.
Ejemplo :
ID IP
Lumibot0001 192.168.1.10
Lumibiot0101 200.156.1.20
Cyon100110 198.167.5.15
AFAFA0101 202.76.15.9
El modem hace un Wakeup (despierta) cada periodo de tiempo y consulta si su dircción IP, ha cambiado, si lo ha hecho , debe comunicarse con el servidor de DNS propio, que hemos creado y reportarle su nueva dirección IP, así cuando el servidor Web, desee enviarle un mensaje un modem ENFORA GSM128 particular,por ejemplo al Cylon100110, se comunica con el servidor con su DNS , toma la dirección inscrita alli, para este modem 192.167.5.15 y establece la comunición por la misma compañia de correos que se esta utilizando, TCP/IP, a la cual ya se le puede dar la dirección IP de el modem porque la tiene inscrita.
Pero esperen , un momento, sucede que la carta de nuesto amigo, no va en "Espanol" (Http), nuestro destinatario es Francés y no conoce el Espanol (Http), que hacemos entonces, no podemos envirle nuestros comandos POST/GET de forma directa porque el no habla este idioma, (el Modem no tiene protocolo Http, solo TCP/IP), nos toca entonces , traducir nuestra carta a Frencés antes de enviarla, para eso debemos hacer un Parcer ("analizador de información y convertido de protocolo") para ponerla en un formato que el remitente si pueda leer. hay que hacer entonces un META-LENGUAJE que permita efectuar esta función, que verifique que ambos extremos de la comunicación se entienden.
No es diicil es simple , es crear unas variables y pequeños comandos que ambos sistemas entiendan por ejemplo
(01) ONOFF = .T. /*encienda el dispositvo*/
(02) LEEVOL = .T. /*Lea el voltaje*/
(09) ESPERE = 50 /*Espere 50 milisegundos*/
(11) RESET = .T. /*Reinicie l equipo*/
El numero que antece el comando el el codigo del mismo.
La cadena que enciende el dispositivo, espera que el sistema se estabilice, lee el voltaje y se reinicia es la siguiente:
en cristiano : ONOFF=T&ESPERE=50&LEEVOL=T&RESET=T
en el parser : 01T0950025011T
En resumen:
El cliente se comunica con el servidor Web mediante TCP/IP, usando Http y el Socket 80 y los comandos POST/GET.
Entre el servidor y el cliente se crea un servidor DNS con las identiifcaciones unicas del modem ENFORA-GSM128 y su IP asignada por la compañia provedora de GPRS.
Se crea un META-LENGUAJE , para que el cliente se entienda con el servidor cuando no usa POST y/o GET.
El Servidor Web , se comunica con el servidor DNS, para obtener la dirección del cliente al que va enviar un mensaje, coloca su información en un Parcer para que coloque la información en el forma que el cliente entienda, habre un canal TCP/IP con el cliente y le envia la información.
Carlos Arturo Castaño G
Comentarios
Publicar un comentario