Interface Web Service JSON


Se ha implementado una solución para generar DMID (Operación prioritaria a la hora de replicar) y enviar un PUSH al dispositivo para que éste comunique con el servidor y se descargue la operación que le hayamos enviado, acortando así los tiempos para enviar información a los dispositivos.

Para ello, vamos a ver qué hemos de configurar para poder hacer uso de esta funcionalidad:

Para el uso del push en el dispositivo, hemos de tener unas claves en el license.ini:

Claves
UsePush=true.
ShowNotify=true-false. (Para activar/desactivar las notificaciones en el dispositivo)
GooglePushSenderID=Numero que se obtiene en la consola de desarrollador de google.



En la parte server, en el servicio que vamos a publicar para recibir JSON de los web services del cliente:



Al tratarse de un servicio desarrollado con .NET, la configuración se realiza en un fichero Web.config, en el cual hemos de configurar 4 secciones:

VARIABLES
IT FILES
ORIGINS
PUSH CONFIG


VARIABLES
Log Level 0 si no queremos log y 6 si queremos dejar log, aunque hay otros niveles de log, el 6 los incluye todos.
Version MUY IMPORTANTE, si se hace algún cambio en el fichero XML de configuración, hay que cambiar éste valor para que el servicio ya publicado sepa que se ha producido algún cambio y vuelva a iniciarse.


IT FILES
Ruta del fichero XML de configuración de nuestra interface que contiene las cadenas de conexión y las reglas de negocio.


ORIGINS
Seguridad adicional, tendremos diferentes claves con las direcciones desde la cuales se puede llamar a nuestro servicio, si no se instancia desde una de las direcciones aquí definidas, el servicio no devolverá ningún resultado.


PUSH CONFIG
Como su propio nombre indica, las claves de configuración para el envio PUSH.


Entre las más importantes:

Push ID Field Para indicar el campo donde nos viene el identificador del dispositivo.
Google GCM Key Para especificar la clave que nos ha asignado google en el panel de desarrolladores de google para utilizar las APIs y poder utilizar su PUSH.
Push Source Que tendrá el valor “push_server”.



Por último, en este fichero, hay un nodo llamado “system.diagnostics” que contendrá entre otras cosas, las rutas de los ficheros de log.
El primer fichero, definido dentro del Source “myUserTraceSource“ el el log de la aplicación y se rellena cuando activamos el log en la clave “Log Level” de la sección Variables, el segundo fichero de log definido en el Source “System.ServiceModel es el log de Windows.
Estos ficheros se leen con la herramienta del visor de seguimiento de servicio “SvcTraceViewer.exe“.



Este fichero, que se puede llamar como se quiera es el que hemos definido en la sección ITFiles del Web.config y es el que contendrá la lógica para la interpretación de los datos recibidos con JSON.

Las características más destacadas son:

Características
En las transformaciones el atributo “source-table” deberá tener una select del atributo “action” como si los resultados vinieran de una tabla source-table=“select * from RECEPCION-MENSAJES”, ver llamada al web service más abajo.
En el coll de la transformación, tenemos un atributo “insert-dmid”, en el cual se averigua el MID al cual hay que poner el dmid.
Podemos hacer uso de la macro “##SOURCE##”, la cual hace referencia al JSON que nos viene en la llamada. P.Ej: ##SOURCE##.DESTINO → hace referencia al campo DESTINO del JSON.
En el nodo after-action, tenemos una acción: <action name=“send-push”> la cual se encargará de enviar un push al dispositivo. Para ello habremos de lanzar una select para averiguar el PID del mismo. Junto con la select se pondrá un atributo replicate=“true” si queremos que tras recibir el PUSH fuerce la réplica.


Para invocar el servicio utilizaremos la dirección IP que sea /JSONOnlineITF/RestITF.svc/SendData/, a la cual habrá que pasarle un JSON del tipo:

  "action":"RECEPCION-MENSAJES"\\
  "data":{\\
   "ID":34,\\
   "ORIGEN":"Central",\\
   "DESTINO":"355numerosvarios8126",\\
   "MENSAJE":"El mensaje que sea ",\\
   "FECHA":"26/04/2017",\\
   "HORA":"10:50",\\
   "PRIORIDAD":0,\\
   "ACTIVO":1\\
  


Las Integraciones que tenemos disponibles con los distintos sistemas quedarían:

Tipo de Integración Descripción
Base de datos Integración con diferentes DBMS: SQLSERVER, ORACLE, MYSQL, DB2
SAP Integración mediante BAPIS o funciones. Si se nos saca la información a tablas intermedias se puede utilizar la integración con base de datos.
Web Services SOAP Integración con Web Services SOAP.
Web Services JSON Integración con Web Services donde el intercambio de información se realiza mediante JSON. Utilizando Web Socket Secure (WSS) y utilizando un broker de conexión para dar seguridad a las transacciones. Dentro de este tipo de interface podemos combinar con el envío de DMID y hacer un PUSH al dispositivo para que comunique con el servidor.