ESOFT 3 Nice Screen Scraper: Web service, Console client and Web client



Documentos relacionados
ESOFT 3 Nice Screen Scraper: A simple scraper

ESOFT 3 Nice Screen Scraper. Héctor López Sacanell hlopez1@alumnes.udl.cat

Manual de usuario investigador

Manual de Usuario de la Herramienta SICRES-Tester. SIR Sistema de Interconexión de Registros. Tipo de documento. Fecha de entrega 08/04/2014

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

PLATAFORMA DE VISADO TELEMÁTICO.

Opciones Bandeja de Entrada Workflow. Mantenimiento Proyecto Génesis. Universidad Complutense de Madrid

Manual de uso de la Administración ITALO

Manual del Usuario. Portal Web Para uso exclusivo de Ministros de Estado.

Manual de usuario Noticias y Accesos Directos en Facultades ÍNDICE

Manual del Profesor Campus Virtual UNIVO

VS-Tv. Manual de usuario. Matriz virtual de vídeo ESPAÑOL

Manual del panel. Core-Admin

WINDOWS : TERMINAL SERVER

Manual de usuario para Facturación Electrónica 2011

SINAUTO. (Captura Requirimientos) GRUPO 03

MANUAL DE USUARIO FACTURACIÓN ELECTRÓNICA

MANUAL DE USUARIO HERRAMIENTA DE GESTIÓN DE IMPAGOS

Presentaciones compartidas con Google Docs (tutorial)

Oficina Online. Manual del administrador

Conceptos Generales en Joomla

REGISTRO DE DOMINIOS CONECTIVIDAD ADSL HOSTING COMPARTIDO RED CORPORATIVA VPN SOPORTE TECNICO PROFESIONAL

MANUAL DE USUARIO SIMPIOJO TE CNICO

MANUAL DE LA APLICACIÓN HELP DESK

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Manual de Usuario - SDI - Seguridad en Datos de Investigación. Automatización de Buenas Prácticas en Bases de Datos de Investigación

AYUDA. 1. Registro de Usuarias. 2. Acceso de usuarios (Login) 3. Recuperación de contraseña de usuario. 4. Mi Zona Personal. 5.

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha

SISTEMA DE REGISTRO DE TRANSACCIONES BURSATILES BAGSA MANUAL DE USUARIO

UNIDAD DIDACTICA 4 INTEGRACIÓN DE CLIENTES WINDOWS EN UN DOMINIO

Programa de encriptación WIFI.

GUÍA RED SOCIAL FACEBOOK

Guía Práctica para el Uso del Servicio de Software Zoho CRM

Correo Electrónico: Webmail: Horde 3.1.1

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009)

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

Manual de Usuario SATCAFE Sistema para Te cnico

Manual CMS Mobincube

SMS Gestión. manual de uso

Normas para realizar un Blog

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Manual de usuario de la aplicación de envío telemático de partes de accidente y enfermedad profesional

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC

Apuestas de lotería on-line mediante teléfonos móviles

STRATO LivePages Inicio rápido

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

ICARO MANUAL DE LA EMPRESA

Servicio Webmail. La fibra no tiene competencia

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

MANUAL DE USUARIO SIMCHA TE CNICO

Escudo Movistar Guía Rápida de Instalación Para Windows

Manual de Usuario Internet

MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES

Person IP CRM Manual MOBILE

PRÁCTICA FINAL TECNOLOGÍA MULTIMEDIA 3 DE JUNIO DE ENDIAN LIN [Dirección de la compañía]

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC

MANUAL DE USUARIO Dominio DNS PORTAL CLIENTES GTD INTERNET.

Introducción a los sitios de SharePoint en Office 365

Resumen de la Tesina. Autor: Adrià Batet López. Tutor: Víctor Pascual Ayats

GESTIÓN DE VISADO TELEMÁTICO Manual de usuario Web (rev 1.1)

Manual del Usuario Groupware

Manual SSO Avant2. Última revisión: 02/05/2013. Copyright Codeoscopic S.A.

Ilustre Colegio Oficial de Médicos de Zamora. Correo Corporativo. Manual de Usuario

FOROS. Manual de Usuario

El proceso de edición digital en Artelope y CTCE

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

Cómo acceder a Google Drive? Tiene más funcionalidades una cuenta de Google?

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

Manual de usuario para Facturación Electrónica 2011

MANUAL DE USUARIO PANEL DE CONTROL Sistema para Administración del Portal Web.

MANUAL CONFIGURACIÓN P2P EZVIZ HIKVISION

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

TUTORIAL PARA AUTORES/AS

Manual de uso básico de la aplicación

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

Manual de usuario de Parda Programa de Almacenamiento y Recuperación de Datos Automático

Gestión de Ficheros en ruralvía Recibos

Resumen ÁREA DE FACTURACIÓN::INFORMES::Pedidos Detalle Resumen ÁREA DE

INFORMATIZACION DE EMPRESAS, S. A. ACTUALIZACION DE MARZO 2008

Infraestructura Tecnológica. Sesión 8: Configurar y administrar almacenamiento virtual

SUBDIRECCIÓN GENERAL DE NUEVAS TECNOLOGÍAS DE JUSTICIA MANUAL DE USUARIO DE LA NUEVA APLICACIÓN DE CORREO ELECTRÓNICO

PRESENTACIÓN DEL PRODUCTO

Citrix Conferencing Manager

El e-commerce de Grupo JAB es una herramienta que permite a los clientes del Grupo, realizar un amplio conjunto de servicios de consulta, petición y

Guía paso a paso para la cumplimentación del formulario de candidatura

Incidencias: Todas las incidencias que ocurrirán durante el apadrinamiento de un niño se deben registrar para poder buscar soluciones.

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

Manual de USO de la Web. Afilnet.com. Afilnet. Servicios de Telecomunicaciones SMS

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

Introducción a LinoIt Breve guía sobre algunas de sus funcionalidades destacables.

SIEWEB. La intranet corporativa de SIE

Introducción a Protégé

Traslado de Copias y Presentación de Escritos. Manual de Usuario V.3.1

MANUAL DE USUARIO SIMTO TÉCNICO Trampeo

Manual de Introducción a SIMULINK

TUTORIAL PARA CREAR LA WEB DEL DEPARTAMENTO CON LAS HERRAMIENTAS DE EDUCAMADRID

Novedades PhotoGestion 5

Transcripción:

ESOFT 3 Nice Screen Scraper: Web service, Console client and Web client Héctor López Sacanell hlopez1@alumnes.udl.cat 15 de enero de 2010 1. Introducción El objetivo de esta tercera entrega es la de crear un servicio web y publicarlo en el entorno GAE (Google Application Engine), así como la creación de un cliente sencillo de consola que se pueda comuncar con él y finalmente un cliente web que facilite y realice las tareas más intuitivamente. 2. Aplicación final La aplicación final se encuentra desplegada y funcionando en el entorno GAE en la siguiente URL: http://nicescreenscraper.appspot. com. Existen dos versiones desplegas, la primera (versión 1) 1 corresponde a la simple funcional de servicio web (sin cliente web), con lo que se tenía que utilizar un cliente externo. Mientras que la versión 2 incluye un cliente web integrado 2, así como algunas modificaciones en su arquitectura, para así tener implementados los patrones que se comentaron en la primera entrega. Ésta última es la que está marcada como principal. Ambas versiones se encuentran tanto desplegadas como etiquetadas en el repositorio de código fuente 3. En la siguiente figura (Figura 1) se puede ver el aspecto final del cliente web. 1 Versión 1: http://1.latest.nicescreenscraper.appspot.com/ 2 Versión 2: http://2.latest.nicescreenscraper.appspot.com/ 3 Google code: http://code.google.com/p/nicescreenscraper/ 1

Figura 1: Aspecto del cliente web 3. Patrones utilizados Si realizamos un análisis en modo descendendet, primero nos encontramos con los clientes (web y consola) y el diseño de las interfaces para cada una de ellas. Para el caso del cliente web tenemos claro que el patrón utilizado es el de Modelo - Vista - Controlador. Mientras que para el cliente de consola, simplemente está utilizando una interfaz, la cual se comunica directamente con un controlador (como en el caso web) siendo el patrón para este controlador el Front Controller, ya que nos proporciona una centralización de todas las acciones procedan de donde procedan. Para el caso de la vista, en el documento de la primera entrega, se comentó que lo mas adecuado sería utilizar el patrón Transform View el cual permite trabajar con plantillas, pero en nuestra implementación final no hemos implementado ningún tipo de sistema de plantillas, aunque hubiera sido deseado, ya que existe información que se repite en una y otra ventana. Si seguimos bajando, nos encontramos con el dominio de la aplicación. En este punto hemos realizado una implementación siguiendo el patrón Table Module, que junto con el uso del patrón Table Data Gateway, en la capa de persistencia, hacen el equipo perfecto para tener los datos accessibles. Para el problema de la concurrencia, tenemos que en nuestra aplicación no nos encontramos con graves problemas, y los que puedan surgir, son gestionados directamente por la implementación de la capa de persistencia, 2

en nuestro caso el JDO (más concretamente, la implementación particular del JDO en el GAE). 4. Diagramas de secuencia Resgistro Para el caso de uso del Registro, hemos añadido una acción en el servicio web con el nombre de LogIn. Esta proporciona el canal básico para poder identificarse en el sistema como un usuario, y en el caso de ser nuevo, se procede al registro de dicho usuario. Esta acción devolverá un mensaje de error en el caso que un usuario ya registrado en el sistema se identifique con una contraseña incorrecta (Figura 2). Figura 2: Diagrama de secuéncia para el caso de uso del registro Se puede observar como la información de respuesta que obtiene el Cliente corresponde al valor de la SessionID, que no es nada más que un valor generado por la función hash MD5, que pretende identificar la sesión de un usuario activo. Lo idela hubiera sido añadir un parámetro más en todas las acciones que requiriesen de un usurio ya identificado, para añadir este valor, de tal manera que los usuarios pudiesen tener una sesión activa (tal y como tenemos en las webs), pero dicha implementación no ha sido realizada y se deja para una futura ampliación. Esta solución añade un nivel más de seguridad en la comunicación servicio web-cliente. El resto de diagramas son muy parecidos, y en los que se puede apreciar la misma estructura de Cliente-Controlador-Dominio-Persistencia. 5. Cliente web Principal En la pantalla principal nos encontraremos con lo que se muestra en la Figura 3, que corresponde a la lista de Screen Scrapers públicos. 3

Desde esta misma pantalla se podrá realizar la llamada a la ejecución del screen scraper. La navegación a través de la web es posible gracias al menú que se encuentra en la parte superior derecha, y que variará dependiendo de si el usuario está o no registrado/identificado. Figura 3: Listado de screen scrapers públicos Registro Si el usuario se quiere identificar/registrar, prodrá hacerlo si accede a la sección de Login a través del menú. Como el caso de uso indicaba que si el usuario no esta registrado se le registra, el cliente web realiza la misma acción. Aunque hubiera sido mejor, añadir una pantalla más de registro de usuarios, ya que de esta manera el proceso es más intuitivo para el usuario final (Figura 4) 4. 4 Se ha creado un usuario de pruebas cuyo username/password son: hector/111 4

Figura 4: Resgistro/identificacion Como curiosidad, las contraseñas se guardan encriptadas en la base de datos para mayor seguridad. Una vez el usuario se haya identificado correctamente, el menú de Login se cambiará por el de Logout. Listado Screen scrapers privados Una vez el usuairo se ha identificado, se le reenvia directamente a la siguiente pantalla (Figura 5), donde se le muestran todos los screen scrapers dados de alta de su usuario. En dicha lista se pueden identificar con un color azulado aquellos screen scrapers que son privados y no son accesibles para otros usuarios. 5

Figura 5: Listado de screen scrapers privados Desde esta pantalla el usuairo tiene acceso a todas las acciones que hacen referencia a un screen scraper, tales como: ejecutarlo, hacerlo públic, modificarlo y borrarlo. Modificar En esta pantalla (Figura 6), podemos ver los datos de un screen scraper para modificarlos (el nombre no se puede modificar ya que es el identificador único). 6

Figura 6: Modificación de los datos de un screen scraper Ejecución La ejecución de un screen scraper se compone de dos pantallas, ya que en la primera (Figura 7) se le pide al usuario que introduzca la URL indicada a raspar. Mientras que en la segunda fase (Figura 8), se muestra el resultado del raspado. 7

Figura 7: Ejecucion de un screen scraper 1 (petición) Figura 8: Ejecucion de un screen scraper 2 (respuesta) 8

6. Screen Scraper adicional Hemos desarrollado un Screen scraper adicional que raspa todas las noticias de la web http://www.elpais.com. En él se puede ver como las noticias se pueden dividir en tres tipos (dependiendo de si son muy importantes, normales o con gráfico). Figura 9: Noticias de la web elpais.com En la captura de pantalla se puede ver como el contenido principal de una noticia se encuentra en la etiqueta h2 (título), mientras que el resumen d ésta se encuentra en una etiqueta p, y ambas englobadas en un div con un class del tipo 1, tipo 3, bq3, bq5, etc... La DTD Para tal efecto, hemos creado el fichero noticias.dtd con la siguiente definición: <?xml version="1.0" encoding="utf-8"?> <!ELEMENT noticias (noticia)*> <!ATTLIST noticias canal CDATA #REQUIRED> <!ELEMENT noticia (titulo, resumen, enlace)> <!ELEMENT titulo (#PCDATA)> 9

<!ELEMENT resumen (#PCDATA)> <!ELEMENT enlace (#PCDATA)> Y esta definición nos obligará a crear un fichero XML resultante que tenga un contenido parecido al que mostramos a continuación: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE cartelera SYSTEM "noticias.dtd"> <noticias canal="internacional"> <noticia> <titulo></titulo> <resumen></resumen> <enlace></enlace> </noticia> </noticias> 10