OTRAS HERRAMIENTAS Y PROTOCOLOS 4. OTRAS HERRAMIENTAS Y PROTOCOLOS En este apartado se verá software que no está directamente relacionado con la orientación a servicios pero que han sido necesarios para la elaboración del proyecto. 4.1. EL PROTOCOLO PAP Este protocolo nos permitirá comunicar nuestro sistema con los BlackBerry Enterprise Server (BES)16. El protocolo PAP contempla distintas operaciones, pero las que interesan son las de presentar un ‘Push’ (Push Submission) y obtener una notificación de resultado (Result Notification). Push Submission El objetivo de presentar un Push es el mandar un mensaje Push desde un iniciador de Push a un Push Proxy Gateway (PPG). En el ámbito del proyecto el iniciador del Push será el ESB y el BES hará las veces de PPG. El PPG, una vez recibido el Push, deberá hacer llegar el mensaje al dispositivo móvil adecuado. El mensaje Push tiene dos partes importantes: la de control y la de contenido. Puede tener una parte de capacidades, pero no será usada en este proyecto por lo que se obviará. La parte de control contiene información que le permite al PPG saber a qué dispositivo debe mandar la parte de contenido. La respuesta a este mensaje push mandado por el iniciador es un documento XML, que indica si se ha rechazado el push o si por el contrario se ha aceptado y el mensaje ha sido enviado al dispositivo móvil. Se ven a continuación los formatos de ambos mensajes. Push En la Figura A.4.1 se muestra el formato del mensaje. La parte superior es la parte de control, mientras que la inferior es la parte de contenido. 16 http://es.blackberry.com/services/business/server/full/ ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA 31 OTRAS HERRAMIENTAS Y PROTOCOLOS 32 --asdlfkjiurwghasf Content-Type: application/xml; charset=ISO-8859-1 <?xml version="1.0"?> <!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP 2.0//EN" "http://www.wapforum.org/DTD/pap_2.0.dtd" [<?wap-pap-ver supported-versions="2.0"?>]> <pap> <push-message push-id="?" ppg-notify-requested-to="?"> <address address-value="WAPPUSH={pin}%3A{puerto}/[email protected]"/> <quality-of-service delivery-method="unconfirmed"/> </push-message> </pap> --asdlfkjiurwghasf Content-Type: ? {Aquí viene el mensaje que se quiere enviar al dispositivo móvil} --asdlfkjiurwghasf-- Figura A.4.1 - Formato Push Si uno se fija en la parte de control, ve que hay un elemento ‘address’. En este elemento se indica el pin del dispositivo y el puerto al que se quiere enviar el mensaje. El elemento ‘push-message’ tiene dos atributos que merecen la pena comentar. El primero es el ‘push-id’ que sirve como identificador único del Push, cuando el PPG responda con relación a este Push usará el mismo identificador. El segundo, indica dónde debe mandar el PPG la notificación del resultado del envío del Push (Result Notification). Respuesta síncrona de la confirmación del envío El formato de este mensaje se puede ver en la Figura A.4.2. El elemento clave de este mensaje es el ‘response-result’ que tiene un atributo con un código que indica si se envió el Push. En el caso de que no fuese enviado indica el motivo. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP 2.0//EN" "http://www.wapforum.org/DTD/pap_2.0.dtd" [<?wap-pap-ver supported-versions="2.0"?>]> <pap product-name="?"> <push-response reply-time="?" sender-name="?" sender-address="?" push-id="?"> <response-result code="?"/> </push-response> </pap> Figura A.4.2 - Formato respuesta síncrona de la confirmación del envío ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA OTRAS HERRAMIENTAS Y PROTOCOLOS Result Notification Con el mensaje de respuesta anterior se sabe que el mensaje ha sido enviado al dispositivo destino. Pero se necesita saber si le ha llegado el mensaje al dispositivo. Por ello cuando el PPG conoce el resultado del envío manda un mensaje al iniciador del Push para comunicárselo. El formato puede verse en la Figura A.4.3. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP 2.0//EN" "http://www.wapforum.org/DTD/pap_2.0.dtd" [<?wap-pap-ver supported-versions="2.0"?>]> <pap product-name="?"> <resultnotification-message code="?" message-state="?" event-time="?" received-time="?" sender-name="?" sender-address="?" push-id="?"> <address address-value="WAPPUSH={pin}%3A{puerto}/[email protected]"/> <quality-of-service delivery-method="unconfirmed"/> </resultnotification-message> </pap> Figura A.4.3 - Formato recepción asíncrona del resultado del envío Con esto queda explicado lo básico del protocolo PAP, que es lo que se usará en el proyecto. Ahora se pasará a dar una breve descripción de las herramientas de desarrollo que se ha usado en el proyecto. 4.2. HERRAMIENTAS DE DESARROLLO En el proyecto se ha usado Eclipse 17 como IDE (Integrated Development Environment), además de las herramientas SoapUI18 y WFetch19 con motivos de testeo. Eclipse Se ha usado Eclipse como entorno de desarrollo. El motivo del uso de este IDE es que la empresa lo lleva usando ya muchos años, además de que posee un plug-in de Maven que permite la elaboración de proyectos Maven de una forma sencilla. 17 http://www.eclipse.org/ http://www.soapui.org/ 19 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b134a806-d50e-4664-8348da5c17129210 18 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA 33 OTRAS HERRAMIENTAS Y PROTOCOLOS SoapUI SoapUI es una herramienta de testeo de servicios Web para arquitecturas orientadas a servicio. SoapUI ofrece gran variedad de funcionalidades. Sin embargo, la principal por la que se ha usado es que se pueden realizar a través de ella invocaciones a servicios web para de esta manera comprobar el funcionamiento del sistema. WFetch Es también una herramienta de testeo. Esta se usará cuando se quieran probar partes del sistema que requieran realizar peticiones HTTP, ya sean por el método POST o por GET. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA 34