TRABAJO FIN DE MÁSTER

Tamaño: px
Comenzar la demostración a partir de la página:

Download "TRABAJO FIN DE MÁSTER"

Transcripción

1 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo UNIVERSIDAD DE OVIEDO MÁSTER UNIVERSITARIO EN INGENIERÍA WEB TRABAJO FIN DE MÁSTER SISTEMA UNIFICADOR Y CATALOGADOR DE SERVICIOS WEB DE TEMÁTICA COMÚN DANIEL MACHADO FERNÁNDEZ El tutor autoriza la defensa del Trabajo Fin de Máster Fdo. D. SECUNDINO JOSÉ GONZÁLEZ PÉREZ... Oviedo, JUNIO de 2014 Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 1

2 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Agradecimientos A Cundi, por darme la oportunidad de realizar este trabajo. Al C1Nn, por su inestimable ayuda cuando la he necesitado. A Natalia, por haber hecho el camino más fácil. 2 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

3 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Resumen Se propone una aplicación web que sea capaz de registrar servicios web de una temática común con el objetivo de conocer su funcionamiento para poder obtener información de ellos de forma unificada. Además, el sistema también será capaz de realizar un catálogo que permita a los usuarios buscar los servicios web registrados mediante un componente buscador que proporcionará información de los servicios web como pueden ser las operaciones que contienen, a qué categoría pertenecen y cual es la dirección donde se pueden encontrar esos servicios web. Otra de las funcionalidades que ofrece el sistema es la capacidad de utilizar esos conocimientos para ofrecer un punto de acceso a esa información que está registrada, es decir, se podrán obtener resultados de diferentes servicios web de forma unificada. Para conseguir obtener este conocimiento, el sistema lo hace a través de un formulario de registro disponible en la web, que consultará el fichero WSDL y entre los registros previos y la aplicación de funciones String Metrics determinará cómo se hace la traducción entre el modelo de referencia y el del servicio web. La aplicación está desarrollada con Java Enterprise Edition, además de incluir un buscador de tipo Apache Solr (Lucene) y una base de datos NoSQL Apache Cassandra. Otras de las tecnologías utilizadas en el desarrollo han sido Apache Maven, Spring Framework, Apache CXF y especificaciones como JSR-330 (Inyección de dependencias) y JSR-220 (JPA). Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 3

4

5 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Palabras Clave Servicios Web, Interoperabilidad, Becas, Universidades, Java, Apache CXF. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 5

6

7 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Abstract The result of this project is a web application that it is capable to register a common topic web services with the purpose of retrieve information about its structure in a unified form. Moreover, the system is also capable to compound a catalog that allows users search information about the registered web services through a search engine component that provides information about this web services like operations, categories and its WSDL's address. The system offers other capabilities like use the knowledge learned in the register process to build a common access point to the registered web services to mine it in a common way. To make the previous goal, the system "learns" this information from the register process available in the web, from the WSDL file specified. With the previous registers and applying String Metrics functions it determines how to make the translate between the reference model and the registered web service. The Application was developed with Java Enterprise Edition, and includes a search engine like Apache Solr (Lucene) and a NoSQL database like Apache Cassandra. Other tecnologies that has been used in this development were Apache Maven, Spring Framework, Apache CXF and JSR-330 (Dependency Injection) and JSR-220 (JPA) specifications. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 7

8

9 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Keywords Web Services, Interoperability, Scholarships, Universities, Java, Apache CXF. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 9

10

11 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Índice General CAPÍTULO 1. MEMORIA DEL PROYECTO RESUMEN DE LA MOTIVACIÓN, OBJETIVOS Y ALCANCE DEL PROYECTO RESUMEN DE TODOS LOS ASPECTOS Introducción Referencias Técnicas Planificación del Proyecto Análisis Diseño del sistema Implementación del sistema Desarrollo de pruebas Manuales del Sistema Conclusiones y ampliaciones Presupuesto Referencias Bibliográficas Apéndices CAPÍTULO 2. INTRODUCCIÓN JUSTIFICACIÓN DEL PROYECTO OBJETIVOS DEL PROYECTO ESTUDIO DE LA SITUACIÓN ACTUAL Evaluación de Alternativas CAPÍTULO 3. REFERENCIAS TÉCNICAS JAVA SPRING FRAMEWORK Spring MVC Spring Test Spring Data JUNIT APACHE SOLR SISTEMAS GESTORES DE BASE DE DATOS NO-SQL Apache Cassandra POSTGRESQL JPA SERVICIOS WEB Apache CXF BOOTSTRAP JQUERY STRING METRICS Chapman matching Soundex / Soundex Smith-Waterman-Gotoh Monge-Elkan MAVEN SVN Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 11

12 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo CAPÍTULO 4. PLANIFICACIÓN DEL PROYECTO Y RESUMEN DE PRESUPUESTOS PLANIFICACIÓN Contexto Personal Tareas del proyecto Resumen Ajuste de la planificación CONCLUSIONES DE LA PLANIFICACIÓN RESUMEN DEL PRESUPUESTO...50 CAPÍTULO 5. ANÁLISIS DEFINICIÓN DEL SISTEMA Determinación del Alcance del Sistema REQUISITOS DEL SISTEMA Obtención de los Requisitos del Sistema Identificación de Actores del Sistema Especificación de Casos de Uso IDENTIFICACIÓN DE LOS SUBSISTEMAS EN LA FASE DE ANÁLISIS Descripción de los Subsistemas Descripción de los Interfaces entre Subsistemas DIAGRAMA DE CLASES PRELIMINAR DEL ANÁLISIS Diagrama de Clases Descripción de las Clases ANÁLISIS DE CASOS DE USO Y ESCENARIOS Registrar universidad ANÁLISIS DE INTERFACES DE USUARIO Formulario de registro Buscador Detalle de Universidad Diagrama de Navegabilidad ESPECIFICACIÓN DEL PLAN DE PRUEBAS...69 CAPÍTULO 6. DISEÑO DEL SISTEMA ARQUITECTURA DEL SISTEMA Diagramas de Paquetes Diagramas de Componentes Diagramas de Despliegue DISEÑO DE CLASES Diagrama de Clases DIAGRAMAS DE INTERACCIÓN Y ESTADOS Registro de una nueva Universidad Buscador Publicador DIAGRAMAS DE ACTIVIDADES DISEÑO DE LA BASE DE DATOS Descripción del SGBD Usado Integración del SGBD en Nuestro Sistema Diagrama E-R DISEÑO DE LA INTERFAZ Descripción de la Interfaz Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

13 6.6.2 Descripción del Comportamiento de la Interfaz ESPECIFICACIÓN TÉCNICA DEL PLAN DE PRUEBAS Pruebas Unitarias Pruebas de Integración y del Sistema Pruebas de Usabilidad y Accesibilidad Pruebas de Rendimiento CAPÍTULO 7. IMPLEMENTACIÓN DEL SISTEMA ESTÁNDARES Y NORMAS SEGUIDOS HMTL CSS Java Conventions JPA (JSR-317) Dependency Injection For Java (JSR-330) JAX-WS (JSR-224) MVC (Model-View-Controller) LENGUAJES DE PROGRAMACIÓN HERRAMIENTAS Y PROGRAMAS USADOS PARA EL DESARROLLO Spring Tool Suite SVN Maven Microsoft Project Microsoft Office Enterprise Architect Windows CREACIÓN DEL SISTEMA Problemas Encontrados Descripción Detallada de las Clases CAPÍTULO 8. DESARROLLO DE LAS PRUEBAS PRUEBAS UNITARIAS PRUEBAS DE INTEGRACIÓN Y DEL SISTEMA PRUEBAS DE USABILIDAD Y ACCESIBILIDAD Pruebas de Usabilidad Pruebas de Accesibilidad (WCAG 2.0) PRUEBAS DE RENDIMIENTO CAPÍTULO 9. MANUALES DEL SISTEMA MANUAL DE INSTALACIÓN PostgreSQL Apache Cassandra Apache Solr Apache Tomcat MANUAL DE EJECUCIÓN MANUAL DE USUARIO MANUAL DEL PROGRAMADOR CAPÍTULO 10. CONCLUSIONES Y AMPLIACIONES CONCLUSIONES AMPLIACIONES Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 13

14 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo CAPÍTULO 11. PRESUPUESTO CAPÍTULO 12. REFERENCIAS BIBLIOGRÁFICAS LIBROS Y ARTÍCULOS REFERENCIAS EN INTERNET CAPÍTULO 13. APÉNDICES GLOSARIO Y DICCIONARIO DE DATOS JUSTIFICACIÓN DEL CAMBIO ESTADO DEL ARTE DE LA WEB SEMÁNTICA Introducción Ontología Servicios Web Semánticos Almacenamiento de ontologías Problemas Arquitectura Tecnologías y Herramientas seleccionadas Referencias de interés HOJA DE DECISIONES DEL CAMBIO Servicios Web Semánticos Servicios Web Unificados Tecnológicas CONTENIDO ENTREGADO EN EL CD-ROM Contenidos Ficheros de Configuración Log4j.properties Database.properties Persistence.xml Orm.xml Beans Publisher.wsdl CÓDIGO FUENTE Define-tramites-servicios-web-unificados-buscador Define-tramites-servicios-web-unificados-modelo Define-tramites-servicios-web-unificados-publisher Define-tramites-servicios-web-unificados-recolector Define-tramites-servicios-web-unificados-registrador Define-tramites-servicios-web-unificados-service Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

15 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Índice de Figuras Ilustración 1. Alternativa Ilustración 2. Alternativa Ilustración 3. Alternativa Ilustración 4. Alternativa Ilustración 5. Referencias Técnicas. Spring...30 Ilustración 6. Planificación. Diagrama Resumen Proyecto...44 Ilustración 7. Planificación. Diagrama de recursos...44 Ilustración 8. Planificación. Coste por Componentes...44 Ilustración 9. Resumen de los casos de uso...55 Ilustración 10. Diagrama de clases previo...59 Ilustración 11. Casos Uso. Registrar una universidad...63 Ilustración 12. Casos Uso. Obtener información del servicio web...64 Ilustración 13. Casos Uso. Emparejamiento de campso...65 Ilustración 14. Interfaz de Usuario. Formulario de Registro...66 Ilustración 15. Interfaz de Usuario. Buscador...67 Ilustración 16. Interfaz de Usuario. Detalle Universidad...67 Ilustración 17. Diagrama de Navegabilidd...68 Ilustración 18. Arquitectura. Diagrama de Paquetes...71 Ilustración 19. Arquitectura. Paquete Modelo...71 Ilustración 20. Arquitectura. Paquete Service...72 Ilustración 21. Arquitectura. Paquete Buscador...72 Ilustración 22. Arquitectura. Paquete Recolector...73 Ilustración 23. Arquitectura. Paquete Registrador...73 Ilustración 24. Diagrama Despliegue...74 Ilustración 25. Diagrama Clases. Controller...76 Ilustración 26. Diagrama Clases. Search...77 Ilustración 27. Diagrama Clases. SearchView...77 Ilustración 28. Diagrama Clases. University...78 Ilustración 29. Diagramas Clases. Diagramas Clases...78 Ilustración 30Diagrama Clases. Validator...79 Ilustración 31. Diagrama Clases. View...80 Ilustración 32. Diagramas Clases. Model...81 Ilustración 33. Diagramas Clases. NoSQL...81 Ilustración 34. Diagramas Clases. Persistence...82 Ilustración 35. Diagramas Clases. Class...82 Ilustración 36. Diagramas Clases. Util...82 Ilustración 37. Diagramas Clases. Wrapper...83 Ilustración 38. Diagramas Clases. Publisher...83 Ilustración 39. Diagramas Clases. Recolector...84 Ilustración 40. Diagramas Clases. Ws...84 Ilustración 41. Diagramas Clases. Matcher...85 Ilustración 42. Diagramas Clases. Presentation...86 Ilustración 43. Diagramas Clases. University...87 Ilustración 44. Diagrama Clases. Ws...88 Ilustración 45. Diagramas Clases. Builder...89 Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 15

16 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Ilustración 46. Diagramas Clases. Business Ilustración 47. Diagramas Clases. Exception Ilustración 48. Diagramas Clases. Matcher Ilustración 49. Diagramas Clases. SearchEngine Ilustración 50. Diagramas Clases. Solr Ilustración 51. Diagramas Clases. University Ilustración 52. Diagramas Clases. Ws Ilustración 53. Diagrama Secuencia. Registro Universidad Ilustración 54. Diagrama Secuencia. Registro Universidad Ilustración 55. Diagrama Secuencia. Registro Universidad Ilustración 56. Diagrama Secuencia. Registro Universidad Ilustración 57. Diagrama Secuencia. Buscador Ilustración 58. Diagrama Secuencia. Publicador Ilustración 59. Diagrama Actividad. Registro Universidad Ilustración 60. Diagrama E-R Ilustración 61. Interfaz. Página de inicio Ilustración 62. Interfaz. Formulario de registro Ilustración 63. Interfaz. Selección de Operaciones Ilustración 64. Interfaz. Emparejamiento campos Beca Ilustración 65. Interfaz. Emparejamiento campos Solicitante Ilustración 66. Interfaz. Formulario guardado Ilustración 67. Interfaz. Buscador Ilustración 68. Interfaz. Detalle Universidad Ilustración 69. Interfaz. Pantalla del recolector Ilustración 70. Interfaz. Información de la aplicación Ilustración 71. Interfaz. Mensaje informativo Ilustración 72. Interfaz. Mensajes de Error Ilustración 73. Test. Resultados del procesamiento de Tests Ilustración 74. Pruebas. Cuestionario Usuario Ilustración 75. Pruebas. Cuestionario Usuario Ilustración 76. Pruebas. Cuestionario Responsable Calidad Ilustración 77. Pruebas. Cuestionario Responsable Calidad Ilustración 78. Nivel A Accesibilidad Ilustración 79. Nivel AA Acesibilidad Ilustración 80. Nivel AAA Acesibilidad Ilustración 81. Stack de Tecnologías Semánticas Ilustración 82. Niveles de OWL Ilustración 83. Niveles de WSML Ilustración 84. Arquitectura Pellet Ilustración 85. Enfoque de WSMO Ilustración 86. Enfoque de OWL-S Ilustración 87. Interacción con WSMX Ilustración 88. IBM-SOR Ilustración 89. Arquitectura SWS Ilustración 90. Arquitectura Apache Jena Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

17 Memoria del Proyecto Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 1. Memoria del Proyecto 1.1 Resumen de la Motivación, Objetivos y Alcance del Proyecto Debido a la problemática que existe en materia de intercambio de expedientes universitarios, es común pensar que se le ha de buscar alguna solución. Estando en una sociedad de la información en la que nos encontramos, que para que una universidad concreta que necesite un expediente de un alumno o conocer el sistema de becas ofertadas de otra universidad, no pueda obtenerlas de forma automática si no que bien se tenga que realizar un componente específico o que la solución sea consultarlas en una página web o mediante correos electrónicos entre responsables, es una gran pérdida de tiempo. Se podía diseñar un sistema que sea capaz de facilitar esta tarea y que allanase el camino para poder explotar la información que pueden obtener las universidades unas de otras bien sea en forma de mejores programas, facilidades para becas de movilidad, ahorro de tiempo y trabajo de operarios y en recursos. A colación de estos hechos, este proyecto busca hacer esta tarea de la interoperabilidad entre universidades algo menos árida, pues se propone que cada universidad mediante un registro en un formulario deje constancia de cómo son sus servicios web y de esta forma el sistema pueda conseguir traducir sus servicios web a un formato común para que la información que se comparta entre universidades sea transparente provenga del punto del que provenga. Por otro lado, también se ofrecerá la posibilidad de consumir esta información de las universidades mediante un único punto de acceso a través de un servicio web parametrizable para obtener los resultados que el usuario desee más convenientes. Este punto de acceso se abastecerá de los registros que se realicen en el punto anteriomente explicado pues conocerá cómo realizar las traducciones entre universidad y sistema. Este proyecto también ha de servir para generar un catálogo de servicios web a nivel nacional pues contendrá un buscador que realizará las tareas de biblioteca donde consultar los servicios web que están registrados, qué operaciones tienen y en qué dirección se pueden encontrar. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 17

18 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Memoria del Proyecto 1.2 Resumen de Todos los Aspectos Introducción En este apartado de la documentación, se irá guiando al lector a través de los puntos más básicos del proyecto como por ejemplo pueden ser la motivación, los objetivos que se buscan, la situación actual Referencias Técnicas Rincón técnico donde se explicarán los términos y tecnologías que se han utilizado a la hora de elaborar el proyecto Planificación del Proyecto Apoyándose en un diagrama de Gantt, se replicará el calendario que se siguió en la ejecución del proyecto, dando así una estimación en caso de querer reproducir el mismo Análisis Se desentrañará parte del trabajo previo a la ejecución del proyecto. Requisitos del sistema, casos de uso, alcance del proyecto, pruebas, etc Diseño del sistema Aquí se plasma la mayor parte del trabajo de ejecución del proyecto. Diagramas de clases, de interacción, más pruebas de rendimiento, unitarias, etc Implementación del sistema Se describirán las tecnologías utilizadas, las normas seguidas y las herramientas utilizadas para la implementación Desarrollo de pruebas Como se ha venido diciendo en los capítulos anteriores, aquí se detallarán las pruebas que se han realizado y los resultados. 18 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

19 Memoria del Proyecto Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Manuales del Sistema Aquí se facilitarán una serie de manuales que se espera puedan ayudar a los futuros programadores, usuarios y administradores a utilizar el proyecto facilitando Conclusiones y ampliaciones Este es un buen sitio para plasmar las posibles ampliaciones del proyecto que se podrían realizar, además de reseñar las impresiones que se han tenido en la consecución del proyecto Presupuesto Estimación monetaria del montante que supondría realizar el proyecto para una empresa/usuario que deseara replicar el proyecto. Se facilita el presupuesto general y el detallado Referencias Bibliográficas Referencias que se han consultado para la obtención de conocimientos que no se tenían a la hora de realizar el proyecto Apéndices Se detallarán anexos que se han considerado oportunos para la comprensión más profunda del proyecto. Se especificará la información facilitada en el CD-ROM que acompaña a esta documentación. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 19

20

21 Introducción Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 2. Introducción 2.1 Justificación del Proyecto Hoy en día uno de los grandes problemas que las entidades o empresas manejan es la organización de información. Organizar la información que poseen o con la que trabajan es una tarea compleja, pero si además esa información se ha de compartir con otras empresas del mismo ámbito, la tarea se vuelve mucho más complicada. Actualmente el canal por el que se comparte esa información entre las diferentes empresas si se tiene en cuenta que están informatizadas y actualizadas, será Internet y el medio común más utilizado será exponer una serie de servicios web que ofrecerán esa información que quieren compartir bajo unos criterios concretos. Como se puede deducir, cada empresa o entidad tendrá sus propios servicios web publicados, teniendo cada uno una finalidad concreta. Por ejemplo, se puede comprender que un hospital concreto pueda difundir los expedientes clínicos de sus clientes entre otros hospitales bajo demanda. Si una persona de Oviedo va al médico por una urgencia en Valencia, el médico que le trate en Valencia deberá conocer sus datos, con lo que si el hospital de Oviedo tiene su repositorio de información particular y el de Valencia el suyo (que sería lo más común para focalizar y no ralentizar los sistemas), tendrán que transmitir esa información de algún modo. Parece bastante sencillo pensar que no existe problema en este caso, pues si los servicios informáticos del hospital de Oviedo tienen un servicio web con el que puedan obtener el expediente clínico del paciente desde Valencia el problema está resuelto. Y qué ocurre con la forma? Para que desde Valencia sepan que 66 son los kilogramos que pesa el paciente y no la edad hay que darle sentido a los datos que se reciben y ese sentido entre dos sistemas que se comunican de forma automática es complicado tenerlo, a lo mejor no entre dos, pero hay que darse cuenta que hospitales existen muchos. Cómo se podría solucionar esto? La forma más sencilla sería que cada hospital adaptara sus servicios web a un estándar común que un organismo regulador debería de definir, pero a falta de esta entidad/sistema, no queda más remedio que utilizar un sistema que intente adivinar que esos 66 finalmente sean los kilogramos y no la edad. Este trabajo se centrará en el ámbito universitario, concretamente en la compartición de catálogo de becas entre universidades, aunque el caso que se ha expuesto haya sido el de un hospital para que sea más fácil entender el problema al que se enfrenta el trabajo y lo extensible que pueda ser. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 21

22 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Introducción 2.2 Objetivos del Proyecto La finalidad por la que se realiza este proyecto es facilitar la comunicación y el traspaso de información de ámbito similar entre dos entidades que anteriormente bien por desconocimiento de que podrían compartir información o bien por falta de entendimiento entre las partes no podían realizarlo. Además también permitirá llevar acabo un catálogo de los servicios que estén registrados, a modo de repositorio desde el cual se podrá obtener información de todos los servicios. Este catálogo también será indexado y será posible acceder a su contenido mediante búsquedas para su fácil acceso. Para que estos servicios estén disponibles, se pondrá a disposición de los usuarios un formulario de registro semi-inteligente que será capaz de adivinar las similitudes entre el sistema base o de referencia y el que se está registrando. Los servicios del catálogo, serán capaces de ser llamados de forma conjunta, para recibir la información de forma homogénea, siendo independiente la entidad que los sirva. 22 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

23 Introducción Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 2.3 Estudio de la Situación Actual La Ley 11/2007 LAECSP Ley de Acceso Electrónico de los Ciudadanos a los Servicios Públicos fue una ley en la que se obligaba a las Administraciones Públicas a ofrecer sus servicios a los ciudadanos por medios telemáticos. Por razones obvias, como la recesión económica y la crisis económica por la que estamos atravesando, esta Ley, de obligado cumplimiento a 1 de enero de 2010, se relajó y las administraciones fueron adaptándose en función a sus posibilidades. La tramitación electrónica trajo consigo la necesidad de modificar los procedimientos administrativos a los que estábamos acostumbrados, la mayoría de los cuales se tramitaban en papel y a través de una ventanilla, en la que muchas veces teníamos que hacer largas colas para la tramitación de ciertos servicios, e incluso, presentar información redundante, por ejemplo, fotocopia del DNI, estar al corriente de nuestros pagos, certificado del padrón, etc. En muchos de estos casos se ofreció la posibilidad de simplificar el procedimiento, evitando que el ciudadano tuviese que presentar información que, de alguna forma, ya estuviese en poder de la propia administración u organismos públicos. Aquí nace un nuevo término de Interoperabilidad administrativa, se hace necesaria la comunicación entre los distintos organismos para el intercambio de información, evitando que el ciudadano presente información redundante, sólo se le solicitará autorización para realizar dicha consulta desde el organismo correspondiente en cada momento. Esto trae consigo la creación y aprobación del ENS y del ENI, RD 3 y 4 de 2010 en la que se establecen las normas técnicas de seguridad y de interoperabilidad, respectivamente, de la información. Los ESQUEMAS NACIONALES son normativas muy avanzadas y exigentes cuyo fin es crear condiciones objetivas de interoperabilidad y de seguridad que faciliten el ejercicio de derechos y el cumplimiento de deberes a través de los medios electrónicos. El ENI se define en el apartado 1 del artículo 42 de la Ley 11/2007, el conjunto de criterios y recomendaciones en materia de seguridad, conservación y normalización de la información, de los formatos y de las aplicaciones que deben ser tenidos en cuenta por las Administraciones Públicas para la toma de decisiones tecnológicas que garanticen la interoperabilidad. Además, las Normas Técnicas de Interoperabilidad desarrollan aspectos concretos de diversas cuestiones necesarios para asegurar los aspectos más prácticos y operativos de la interoperabilidad entre las Administraciones Públicas y el ciudadano. La relación de normas incluye los estándares del documento electrónico, del expediente electrónico, digitalización de documentos, política de firma electrónica y de certificados de la Administración e, incluso, el tratamiento de ficheros de intercambio de información, que no son más que la definición estándar de una estructura de ficheros XML. Todo esto no es suficiente para el intercambio de información entre organismos, por ejemplo, las Universidades que quieren intercambiar un expediente académico de un alumno en el que éste desea cambiar de una Universidad a otra, en la actualidad, se tiene que hacer con el expediente en formato papel. Se pretende que el cambio se realice de forma electrónica, para ello es necesario crear estructuras comunes de información y, a través de una capa de servicios, se puede intercambiar la información de forma que las universidades sigan con el mismo sistema de información, pero que puedan interactuar con una capa de servicios para intercambiarse el expediente académico. Dicha capa de servicios debe contener una cierta inteligencia o semántica para la interpretación del Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 23

24 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Introducción modelo de datos de un expediente e, incluso, para la interpretación de la información del expediente. La solución planteada debería ser válida para otros sectores y otras funcionalidades, por ejemplo, el Ministerio de Educación quiere obtener los expedientes o notas medias de todos los alumnos becados, y que lo dicho se pueda llevar a cabo Evaluación de Alternativas Debido a la propia idiosincrasia de los servicios web, el punto conflictivo no está en conseguir recopilar todos estos servicios, que también, pero sobretodo, lo árido del asunto es cómo se consigue normalizar toda la información que presenta cada uno de los servicios web ya que al estar construidos de forma independiente unos de otros, se deberá de depender de un organismo regulador que proponga un estándar o norma por el cual se tendrán que regir estos servicios web, o al menos, los datos que ofrecen Introducción de XSD comunes Una vez existe la necesidad de tener que cambiar el modelo, la primera opción y más compleja de llevar a cabo es modificar los servicios web existentes y que sea cada una de las universidades la responsable de llevar a cabo esta modificación de sus servicios, que teniendo en cuenta cómo está actualmente la situación, no es probable que suceda este cambio de modelo por parte de cada una de ellas. Ilustración 1. Alternativa 1 24 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

25 Introducción Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Web semántica En lugar de que cada universidad redefina otra vez sus servicios web, se podría optar por externalizar este proceso de traducción de cada uno de los modelos, aprovechando las bondades que proporciona una tecnología tan novedosa como puede ser la web semántica. De esta forma el objetivo estaría en conseguir mediante consultas sobre una ontología en SPARQL las conexiones entre un campo del servicio web de una universidad concreta y el del nuevo modelo genérico. Una vez los datos estén convertidos en el modelo genérico, se volverían a publicar unos nuevos servicios web con la información transformada pero recogiendo la información solicitada. El mayor inconveniente de esta solución es que la ontología adecuada para realizar la traducción que resultaría, sería excesivamente degenerada en el sentido de que solamente estaría compuesta por clases aprovechando el sistema de herencia y aun así, no daría soporte completo a todos los campos y probabilidades que podrían encontrarse. Ilustración 2. Alternativa 2 Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 25

26 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Introducción Repositorios de información y XSD común Esta última alternativa sería una revisión de la anterior, mejorándola en el sentido de que se sustituiría una ontología que proporciona conocimiento semántico, por una base de datos que en principio será NoSQL, acompañada de Lucene que nos permitirá por un lado tener un almacén de términos con sus correspondientes traducciones y un índice que permitirá enriquecer léxicamente las búsquedas y traducciones. Ésta es la alternativa que sobre el papel parece más factible de realizarse. Si se tiene en cuenta que la Alternativa 1 es inviable por el costo de trabajo de cada universidad y que la Alternativa 2 sugiere el uso de una tecnología de forma inadecuada, lo más adecuado a parte de porque técnicamente es una solución buena parece que sí da con el perfil que se busca. Ilustración 3. Alternativa 3 26 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

27 Introducción Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Modelo mapeado Debido a que Lucene no proporcionaba lo que se creía en un principio, se intentó utilizar esta biblioteca para realizar el matching de campos entre los modelos de la universidad concreta y el modelo genérico pero se descartó debido a que está orientado a la indexación de archivos. Finalmente se decidió cambiar el modelo anterior y remozarlo para obtener la versión final que se terminará implantando. Se utilizará un modelo mapeado que consiste en generar un repositorio de conocimiento con los emparejamientos que se vayan haciendo y de esta forma los siguientes emparejamientos pueden ir siendo predichos en función del tamaño del repositorio. Además para apoyar la teoría anterior se utilizarán una serie de funciones matemáticas catalogadas como String Metrics que proporcionan mediciones sobre cuánto se parecen dos cadenas de texto (no semánticamente, pero sí léxicamente), con lo que entre las dos soluciones se puede llevar a cabo un mapeo casi automático de los servicios web. Este mapeo se realizará durante el registro y a partir de la información que se obtenga a partir del fichero WSDL que define los servicios web. Toda la información se hará mediante una instanciación dinámica de los métodos de los servicios web y se hará uso también de la introspección del lenguaje. Ilustración 4. Alternativa 4 Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 27

28

29 Referencias técnicas Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 3. Referencias técnicas 3.1 Java Java es un lenguaje de programación orientado a objetos de propósito general, que hizo su aparición en 1995 y fue escrito por James Gosling y la empresa Sun Microsystems (ahora adquirida por Oracle). Lo que le diferencia del resto de lenguajes es que debido a que para ejecutar sus programas hace falta una máquina virtual que los hospede, una vez se realiza la compilación de un programa a bytecodes, se puede ejecutar en cualquier máquina virtual de Java. En sus inicios, la mayor cuota de mercado que manejaba este lenguaje eran sistemas que albergaban microcontroladores como pueden ser lavadoras, neveras, etc. Aunque ahora como más éxito ha conseguido es como lenguaje para aplicaciones empresariales (anteriormente conocido como J2EE, ahora JEE) y por ser el lenguaje utilizado a la hora de desarrollar aplicaciones para sistemas Android. Gran parte de su éxito es debido a que es multiplataforma y muy fácil de usar para las personas que no son todavía muy expertas en el desarrollo de programas pues la curva de aprendizaje es bastante liviana y al estar ejecutado dentro de la Máquina Virtual de Java, no es posible realizar acciones dañinas sobre el computador que las ejecuta, como podría serlo por ejemplo el lenguaje C en sus inicios. Al no llevar esta gestión de la memoria y referencias de objetos es un lenguaje más pesado y menos potente comparándolo con lenguajes como C++ pues el sistema recolector de basura, es el encargado dentro del ámbito Java de liberar las referencias que ya no se utilicen dentro del programa cada una cantidad determinada de minutos para liberar memoria. En este proyecto, se utilizará Java 7 a pesar de que ya ha salido la octava versión del lenguaje que intenta acercarse un poco más a ciertos lenguajes dinámicos pues comienza a incluir funciones lambda. El mayor punto fuerte de Java es que tiene un ecosistema que permite realizar aplicaciones web de forma muy sencilla mediante el uso de diversos frameworks web. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 29

30 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Referencias técnicas 3.2 Spring Framework Es un framework de acogida mundial cuyo fin es la Inyección de Dependencias o Inversión de Control (Inversion of Control, IoC) además de incluir soporte para la programación orientada a aspectos que tan de moda está últimamente. Para la implementación del IoC Spring lo hace mediante un contenedor. Por otra parte, Spring también posee una serie de bibliotecas que proporcionan funcionalidad en varios ámbitos de la programación como pueden ser frameworks web (Spring MVC), para la gestión de la persistencia (Spring JDBC, Spring Data), para la gestión de transacciónes (no sólo de persistencia, a nivel de negocio también con Spring TX), para la generación de procesos batch (Spring Batch) y muchos más. Ilustración 5. Referencias Técnicas. Spring Spring MVC Es un framework que permite la realización de aplicaciones bajo el patrón MVC. Para ello, mediante un Servlet definido en el archivo web.xml que denominan DispatcherServlet que realiza funciones de front controller (de igual forma que lo hace Struts), lo que hace es filtrar todas las peticiones HTTP y las distribuye por las diferentes clases anotadas que tienen mapeada una dirección. Este controlador, a su vez, pasará el control a la vista correspondiente (generalmente, una página JSP) donde se renderizará el resultado de las operaciones de negocio necesarias en función de cada petición. Para ejecutar lógica en la presentación, Spring MVC proporciona una serie de etiquetas para la gestión de los formularios ya que permiten orientarlos a modelos de la aplicación y así inyectar los campos directamente en atributos de las clases, a parte de las tradicionales JSTL. Como es de esperar, también tiene soporte para la internacionalización y localización de la página mediante ficheros properties, interceptores para filtrar peticiones, control de errores mediante la captura de excepciones, resolvedor de recursos de la vista para filtrar qué se hace público y qué no mediante rutas 30 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

31 Referencias técnicas Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Spring Test Spring Test es una herramienta de utilidad que se utiliza para poder ejecutar pruebas unitarias en entornos Spring. Es especialmente necesario utilizar esta herramienta, debido a que será la proveedora del contexto Spring para que funcione la inyección de dependencias en la aplicación. Además también es útil, porque permitirá poder ejecutar contextos diferentes a la hora de realizar tanto las pruebas como la ejecución real de la aplicación: tener diferentes configuraciones de las bases de datos, diferentes unidades de persistencia, carga de diferentes módulos (baterías de mock, por ejemplo) Spring Data Gracias a Spring Data es relativamente sencillo interactuar con las fuentes de datos que se encargan de la persistencia en un proyecto, siendo posible utilizar Spring Data con JPA, JDBC, Solr, Redis, Hadoop, etc. Esta fácil interacción, es debido a que en la versión de JPA, proporciona de forma transparente las operaciones CRUD para un modelo (mediante templates) además de generar búsquedas sencillas de forma automática mediante un interface con lo que no es necesario implementarlas, sólo definirlas y extender de CRUDRepository. En el caso de Solr, permite gestionar la generación de índices de forma sencilla y similar a como se hace con Spring Data JPA. Para la gestión de los recursos con las bases de datos y el buscador se define Spring Data JPA Permite llevar la gestión completa del ORM de Java de forma casi transparente, tan solo basta con implementar unas interfaces que incluye. Permite la realización de consultas básicas de forma transparente para el usuario, además de añadir la posibilidad de realizar las consultas en lenguaje JPQL. Realiza la gestión de las transacciones y además también permite incluir las anotaciones JPA para la elaboración del modelo relacional en las bases de datos Spring Data Solr Al igual que en el caso anterior, este componente simplifica enormemente la integración de Apache Solr con una aplicación web. Si ya puede ser complejo integrar un buscador de contenidos dentro de una aplicación con todo lo que ello conlleva, el realizar las consultas sobre los índices de Solr es tan sencillo como implementar una serie de interfaces de la biblioteca según nos convengan unos tipos de búsqueda u otros. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 31

32 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Referencias técnicas 3.3 JUnit Framework por excelencia en entornos Java para la realización de pruebas unitarias. Una gran integración como plugin con el IDE Eclipse y la capacidad de su utilización mediante anotaciones en las clases que serán detectadas como pruebas hacen de su uso algo muy sencillo. 3.4 Apache Solr Es un motor de búsqueda web referencia basado en la plataforma Apache Lucene y que está apoyado en la Apache Software Foundation. Proporciona funciones de búsqueda de texto completo y parcial mediante la generación de índices de contenido asociado a un término. Al estar desplegado sobre un servidor web que incluye el producto, es posible visualizar y monitorizar cómo se está gestionando en todo momento el propio motor, siendo posible ver los recursos que se están consumiendo de la máquina host, realizar consultas sobre las colecciones generadas, etc. Por otro lado, la configuración de este motor se realiza mediante ficheros de tipo XML donde se definen las estructuras de datos necesarias para la generación de los índices y del contenido que se almacenará bajo esos índices. 3.5 Sistemas Gestores de Base de datos No-SQL Las bases de datos No-SQL son una evolución de las bases de datos tradicionales (relacionales, en red, etc) en las que predomina más la información que se va a guardar en ellas que la estructura que deben seguir, aunque esto no quiere decir que no puedan seguir un esquema predeterminado Apache Cassandra Es un sistema gestor de base de datos distribuida de tipo NoSQL adoptado por la Apache Software Foundation de código abierto y que originalmente fue desarrollada por Facebook para ser el motor de búsqueda de su Inbox. El modelo interno de almacenamiento que utiliza es una BigTable (Sistema de almacenamiento propietario y comprimido de Google) sobre una infraestructura similar a la de Amazon Dynamo. La clasificación genérica de este producto es concretamente, una NoSQL de tipo Clave-Valor, con lo que se pueden almacenar bajo una clave, una serie de campos o tablas, así que en este sentido tiene un cierto parecido con CouchDB (orientada a documentos) en lugar de con Redis que es una Clave-Valor pura. 32 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

33 Referencias técnicas Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Las características más destacables podrían ser que es descentralizada, y por consiguiente no tiene nodos críticos con los que poner en riesgo el sistema (cuando se utilice de forma distribuida), también tolerante a fallos pues tiene replicación automática a través de diversos nodos para mantener la consistencia y gestiona la consistencia para evitar problemas de lectura/escritura a lo largo de los nodos distribuidos. Para la realización de consultas, este producto tiene un lenguaje propio llamado CQL (Cassandra Query Language) que es un lenguaje de consultas de tipo SQL aunque generalmente se utilicen interfaces que solucionan el trabajo más áspero de interacción con la solución como pueden ser Hector o Firebrand para emular un ORM. 3.6 PostgreSQL Sistema gestor de bases de datos (generalmente SGBD o DBMS en inglés) de tipo relacional con lo que basa su almacenamiento en un sistema de tablas o registros de la propia empresa PostgreSQL Global Development Group, distribuido sobre una licencia de tipo MIT y que es libre, de código abierto y que cumple con las características ACID (Atomicity, Consistency, Isolation and Durability) para la gestión de operaciones transaccionales. Como es habitual en este software, el lenguaje de consultas es SQL, concretamente la versión 2008 además de soportar conexiones por ODBC y la posibilidad de aplicar una capa gráfica para la gestión de la base de datos como puede ser pgadmin. PostgreSQL es junto con MySQL el software líder en SGBDs relacionales. 3.7 JPA Es la referencia de Java para la Persistencia (JSR-303). Por sí sola define las operaciones y el sistema que hay que seguir para utilizar Object Relational Models en las aplicaciones Java. Es un avance importante respecto al uso más convencional de las consultas y las bases de datos relacionales pues agrega una capa entre la base de datos y la aplicación donde se mapean las clases de la aplicación y se traducen al modelo relacional. De esta forma, siempre se están utilizando objetos de la aplicación y se separa la responsabilidad de usar registros que eran más comunes en épocas de lenguajes procedimentales como C y se pasan a utilizar objetos mapeados donde además es posible controlar y gestionar el ciclo de vida del objeto en todo momento. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 33

34 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Referencias técnicas 3.8 Servicios Web Es una nueva forma de transmisión de información entre aplicaciones, que tiene como base la compartición de información entre dos puntos mediante la red bajo el protocolo SOAP. Esta información, habitualmente es presentada en forma de exposición de métodos de clases y que se pueden invocar de forma remota, como si fueran métodos de la propia clase, de forma transparente. Estos servicios web, generalmente vienen descritos en un lenguaje denominado WSDL (Web Service Description Language) y en un archivo de mismo nombre, donde se puede identificar como un contrato, pues se definirán los tipos de los parámetros, los nombres de los métodos (que se utilizarán en el extremo como una interfaz) y el tipo del retorno además de la definición de las clases que intervienen en el proceso Apache CXF Framework para Servicios Web, bajo la especificación de Java para Servicios Web (JAX-WS JSR 311) facilita la creación de servicios web mediante anotaciones y el consumo de los mismos a partir de su archivo WSDL. Su inclusión en el proyecto frente a otros como por ejemplo Axis es la capacidad de realizar instanciaciones de forma dinámica de servicios web sin necesidad de crear el stack de clases necesario (clases originales y sus response, por ejemplo). 3.9 Bootstrap Framework web que facilita el diseño responsivo en las páginas web. Su implementación se basa fundamentalmente en JavaScript y en CSS y su funcionamiento es tan simple como ajustar un diseño web original a los diferentes cambios de pantalla que puedan ser factibles de realizarse sobre diferentes tipos de navegadores como por ejemplo móviles, tablets, tamaños de pantalla poco comunes, etc jquery Framework JavaScript que permite trabajar de forma más eficiente y rápida sobre el árbol DOM que se construye a partir del documento HTML. Facilita la forma de trabajar y de mutar el árbol añadiendo además componentes AJAX para mejorar la experiencia de usuario. 34 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

35 Referencias técnicas Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 3.11 String Metrics Son una serie de funciones matemáticas que cuantifican cuánto se parecen dos cadenas de texto entre sí Chapman matching Soundex / Soundex Soundex es un algoritmo que mide cuanto se parecen dos palabras fonéticamente. Si bien la implementación original y el algoritmo original están centradas en el Inglés, las pruebas realizadas han demostrado que puede ser válido en habla hispana para los propósitos del proyecto Smith-Waterman-Gotoh Es una métrica para realizar alineamiento local de secuencias biológicas (ADN, ARN, proteínas) es decir, busca similitudes entre pares de secuencias. Se basa en la utilización de algoritmos de programación dinámica, de tal forma que tiene la propiedad de garantizar el alineamiento entre dos cadenas respecto a una puntuación que es obtenida de matrices de sustitución. Debido a esto último es fácil encontrar similitudes con la famosa distancia Levenshtein de sustitución Monge-Elkan Al contario de lo que se piensa, no es una implementación de Smith-Waterman, es una revisión de Smith-Waterman Gotoh, este enfoque realiza otra serie de pruebas teniendo en cuenta la similaridad semántica de un número de campos o subcampos. Cada subcampo es evaluado contra el subcampo en la cadena de comparación usando la distancia Gotoh entre los campos y esto se combina después con un algoritmo de matching. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 35

36 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Referencias técnicas 3.12 Maven Es una herramienta de despliegue automático de aplicaciones Java. Se puede ver como una remodelación del antiguo Apache Ant, que fue tan exitoso en la generación de ficheros WAR para su posible despliegue en entornos JEE. La mayor mejora que supone Maven es que se encarga de la gestión de las dependencias en forma de bibliotecas que puedan tener los proyectos, él las instala de forma automática, además de tener un amplio abanico de plantillas para crear proyectos sin comenzar de cero. Para la gestión de las bibliotecas, éstas han de ser incluidas en forma de dependencias dentro de un fichero XML denominado pom.xml que además permitirá la gestión completa del proyecto, con qué plugins compilar, metadatos del proyecto, gestión del empaquetamiento, etc. Ligada a esta nueva filosofía de las dependencias, también acoge la nueva tendencia del multiproyecto por la cual se aconseja tener un proyecto por cada capa (Tier) de la aplicación. Por último, otro de sus grandes ventajas es su perfecta integración como plugin de Eclipse para la gestión de los proyectos SVN Apache Subversion es un controlador de versionado que permite sincronizar archivos contra un servidor para llevar un control de los cambios que se van haciendo en un proyecto y permitir de esta forma la separación del proyecto en etapas. En caso de fallos, es posible poder volver a versiones antiguas del proyecto, por ejemplo sin necesidad de realizar copias del propio proyecto a mano. 36 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

37 Planificación del Proyecto y Resumen de Presupuestos Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 4. Planificación del Proyecto y Resumen de Presupuestos 4.1 Planificación Para realizar una planificación más real, se ha optado por describir una organización ideal en lugar de utilizar el trabajo de una sola persona para llevarla a cabo Contexto La empresa que llevará a cabo el proyecto será una empresa típica del sector TIC asturiano de en torno a empleados. En ella habrá diferentes perfiles profesionales desde el punto de vista jerárquico, en la cumbre de la pirámide estarían los Socios capitalistas que serán los propios dueños de la empresa. Debajo de ellos, gestionando las áreas desde dentro de la empresa estarán los Gerentes, que serán los encargados de realizar propuestas, buscar clientes Para gestionar los proyectos conseguidos por los Gerentes, estarán los Jefes de Proyecto que se encargarán de planificar y coordinar los proyectos que tengan asignados. Para ayudar en la gestión a los Jefes de Proyecto, nos encontramos con los Analistas que serán los encargados de realizar trabajos de análisis. Tanto los Jefes de Proyecto como los Analistas no trabajan solamente para un proyecto, si no que se van rotando en diferentes proyectos según se necesitan de sus prestaciones. En el fondo de la pirámide, nos encontraríamos a los Programadores, Administradores de Sistemas, Diseñadores y Testers que serán los que llevarán el mayor peso del proyecto. Tanto los testers como los Administradores de Sistemas y Diseñadores estarán rotando entre proyectos según se les requiera. Verticalmente trabajará un equipo de calidad, que estará pendiente de que se cumplan los procedimientos en todos los proyectos de la empresa. Departamentalmente, la empresa estará dividida en una consultoría, una sección de Investigación+Desarrollo+Innovación, calidad y sistemas. Los perfiles técnicos de los programadores tendrán que ser grandes conocedores de la tecnología Java, haber trabajado con JPA, Spring y al menos conocer el funcionamiento de un buscador. También sería conveniente que hubiesen trabajado con Servicios Web. Los recursos de los que dispone la empresa, son un edificio propio construido hace 5 años, secretaria en el hall del edificio, personal de contabilidad y de recursos humanos, cada persona de la organización cuenta con su puesto de trabajo compuesto de mesa, silla, ordenador y una impresora para compartir cada 10. Además también se dispone de una granja de servidores Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 37

38 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Planificación del Proyecto y Resumen de Presupuestos para permitir dar hosting a los clientes que lo necesiten además de permitir compartir recursos entre empleados como por ejemplo software, repositorios de código o guías de estilo. Como gastos fijos de la empresa podríamos incluir seguros del edificio, de la propia empresa, de los empleados, luz, agua, calefacción, mantenimiento de los equipos, consumibles como tóner, CDs, papel, internet, teléfono, sueldos de empleados, intereses de préstamos bancarios, dietas El horario de la empresa, de 9:00 a 19:00 con una hora para comer y un descanso a media mañana de treinta minutos. Con un horario de jornada reducida en verano, que será de 8:00 a 15:00 aunque no afectaría al proyecto Personal Puesto Cantidad Jefe de Proyecto 1 Analista 2 Programador 4 Administrador de Sistemas 1 Diseñador 1 Tester 1 Tabla 1. Planificación. Personal de la empresa Puesto Cantidad Servidor 1 Portátil 10 Tabla 2. Planificación. Otros recursos Tareas del proyecto Para una mejor comprensión de las tareas se aconseja mirar la documentación adjunta en los archivos de Microsoft Project Previo Para comenzar el proyecto, lo primero que se ha tenido que realizar ha sido la cumplimentación de diversa documentación y análisis del proyecto para tener una visión más concreta de lo que se iba a desarrollar, estudiar alternativas factibles de desarrollarse, realizar los diagramas de clases y componentes del proyecto, selección de tecnologías en definitiva una serie de preparativos para poder arrancar el proyecto con las consiguientes puestas a punto de equipos y entornos. 38 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

39 Planificación del Proyecto y Resumen de Presupuestos Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Duración final del Sprint 18 días. Nombre de tarea Duración Previo 18,13 días Análisis 12 días Cubrimiento del "pliego" (Anteproyecto) 3 días Entrega del "pliego" 1 día Estudio de alternativas 3 días Casos de Uso 2 días Diagrama de Clases 2 días Diagrama de Interacción 2 días Modelado de datos 3 días Selección de tecnologías 1 día Diagrama de componentes 1 día Diseño 2 días Diseño de la arquitectura 2 días Implementación 2,13 días Preparación del servidor Tomcat 3 horas Preparación de la Base de Datos PostgreSQL 3 horas Preparación de la Base de Datos Cassandra 2 horas Preparación del Entorno de Desarrollo STS 2 horas Preparación de Solr 1 día Configuración del SVN 5 horas Configuración de Maven 4 horas Test 1 día Test de software 1 día Test de servidores 1 día Test de base de datos 1 día Entrega de propuesta y documentación 1 día Tabla 3. Planificación. Listado de Tareas Previo Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 39

40 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Planificación del Proyecto y Resumen de Presupuestos Componente Registrador Comienza la implantación de los componentes propiamente dicha, se empiezan a realizar los ajustes necesarios introducidos por el cliente de las partes que no le han gustado y se comienza a realizar el análisis y diseño del componente, además también se comienza con la realización de la búsqueda de las funciones String Metrics para las mediciones del sistema de aprendizaje que apoyará el Matcher de Servicios Web. Otro de los desarrollos que se llevarán a cabo será la realización de las introspecciones de Servicios Web así como la persistencia y el modelado. Finalmente se realizará el testeo de todos los componentes desarrollados y la entrega del componente desarrollado en el sprint. Duración final del Sprint 24 días. Nombre de tarea Duración Componente Registrador 24 días Ajustes de cambios introducidos por el cliente 1 día Análisis 2 días Casos de Uso 1 día Diagrama de Clases 1 día Diagrama de Interacción 1 día Implementación 16 días Búsqueda de funciones StringMetrics para medida 8 días entre dos cadenas Desarrollo del Matcher 10 días Por campo 10 días Por método 8 días Tratamiento de los Servicios Web 5 días Persistencia de los nuevos Servicios Web 2 días Introspección de los Servicios Web 5 días Tratamiento de la Universidad 5 días Persistencia de la Universidad 2 días Refactorización 1 día Test 4 días Probar componente Matcher 1 día Refinamiento de los emparejamientos 1 día Probar persistencia de Servicios Web 1 día Probar persistencia de Universidades 1 día Entrega del componente REGISTRADOR 1 día Tabla 4. Planificación. Listado de Tareas. Componente Registrador 40 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

41 Planificación del Proyecto y Resumen de Presupuestos Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Componente Recolector En este Sprint se realizará el desarrollo del Recolector de Servicios Web, como en cada Sprint, el comienzo es siempre el mismo, se realizan los ajustes necesarios sobre el componente anterior además de realizar el análisis del componente a desarrollar. La implementación constará de la gestión para la conexión con los servicios web de cada universidad concreta, recolección de datos de los servicios web y las transformación al modelo de referencia además de incluir una refactorización de código que llevará al testeo del desarrollo a realizar. Duración final del Sprint 23 días. Nombre de tarea Duración Componente Recolector 23 días Ajustes sobre el componente anterior del cliente 1 día Análisis 1 día Diagrama de clases 1 día Casos de Uso 1 día Implementación 18 días Conexión con los Servicios Web concretos de cada 5 días Universidad Recolección de datos de los Servicios Web 5 días Transformación de los datos de los Servicios Web concretos en un modelo común 8 días Refactorización 1 día Test 2 días Testeo del componente Recolector 1 día Test de integración 1 día Entrega del componente RECOLECTOR 1 día Tabla 5.Planificación. Listado de Tareas. Componente Recolector Componente Buscador En este Sprint se va a realizar el Buscador de Servicios web, con lo que se tendrá que hacer la integración con el servidor que tendrá instalado el Apache Solr, además de la realización de todas las interfaces de usuario, y el desarrollo de las mismas. En este punto también se deberá de realizar la primera integración de componentes, que tendrá que ensamblarse junto con el Matcher y el Recolector. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 41

42 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Planificación del Proyecto y Resumen de Presupuestos Duración del Sprint 25 días. Nombre de tarea Duración Componente Buscador 25 días Ajustes sobre el componente anterior del cliente 1 día Análisis 1 día Casos de uso 1 día Diagrama de clases 1 día Diseño 14 días Diseño de Interfaces de Usuario 7 días Diseño de estilos del sitio web 7 días Implementación 18 días Configuración de Solr para el buscador 9 días Integración de Solr con el sitio web mediante Spring Data Solr 4 días Implementación de la portada 5 días Implementación del registro de Servicios Web 10 días Implementación del apartado de ayuda 2 días Implementación de la persistencia con Spring Data 5 días JPA Diseño de interfaces responsivas con Bootstrap 7 días Realización de formularios mediante AJAX 5 días Integración de componentes Buscador - Matcher - 5 días Recolector Refactorización 2 días Test 4 días Comprobar comportamiento del diseño responsivo en interfaces móviles y pantallas grandes 1 día Comprobar integración entre buscador y los otros 1 día dos componentes Comprobar el sitio web 1 día Comprobar la capa de servicio 1 día Entrega del componente BUSCADOR 1 día Tabla 6. Planificación. Listado de Tareas. Componente Buscador 42 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

43 Planificación del Proyecto y Resumen de Presupuestos Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Componente Publicador Finalmente el componente Publicador se encargará de exponer los Servicios Web que genere el proyecto además de realizar la integración con los anteriores componentes ya ensamblados. También será el momento en el que se cerrará el proyecto, junto con la entrega final del mismo. Duración del Sprint final 12 días. Nombre de tarea Duración Componente Publicador 12 días Ajustes sobre el componente anterior del cliente 1 día Análisis 1 día Casos de uso 1 día Diagrama de clases 1 día Implementación 5 días Generar un publicador para el acceso por Servicio 5 días Web Integración de componentes de la aplicación 5 días Refactorización 5 días Test 5 días Asegurar que se cumplen todos los test previos 5 días Entrega de la aplicación completa 1 día Tabla 7. Planificación. Listado de Tareas. Componente Publicador Reuniones A lo largo del proyecto se planea como mínimo la realización de 6 reuniones con el cliente, una para presentar el proyecto al cliente y que dé el visto bueno del mismo, y otras 5 para entregar los diferentes componentes que se generarán a lo largo de los diferentes Sprints. Duración de las reuniones a lo largo del proyecto 103 días. Nombre de tarea Duración Reuniones 103 días Reunión 1 - Exposición del proyecto 1 día Reunión 2 - Entrega del pliego Planificación de REGISTRADOR 1 día Reunión 3 - Entrega del REGISTRADOR Planificación 1 día de RECOLECTOR Reunión 4 - Entrega de RECOLECTOR Planificación de BUSCADOR 1 día Reunión 5 - Entrega BUSCADOR Planificación de PUBLISHER 1 día Reunión 6 - Cierre del proyecto 1 día Tabla 8. Planificación. Listado de Tareas. Reuniones Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 43

44 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Planificación del Proyecto y Resumen de Presupuestos Resumen A continuación se presentan una serie de diagramas y de datos que resumen el desarrollo del proyecto estimado. Ilustración 6. Planificación. Diagrama Resumen Proyecto Ilustración 7. Planificación. Diagrama de recursos Ilustración 8. Planificación. Coste por Componentes 44 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

45 Planificación del Proyecto y Resumen de Presupuestos Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Número de tareas: 107 Duración de la tarea mayor: 10 días (Implementación del Registro de los Servicios Web) Duración de la tarea menor: 1 día (Comprobar la capa de servicio) Número de tareas críticas: 6 Número máximo de tareas críticas simultáneas: 1 Media de holguras: Presupuesto total de personal: Duración total del proyecto: 103 días Número de recursos totales: 10 Número de recursos personales: Ajuste de la planificación Tras realizar la primera planificación, se han tenido que realizar algunos ajustes sobre la planificación original debido a algunos retrasos. Los componentes que se han visto retrasados han sido los siguientes: Nombre de tarea Duración Comienzo Fin Previo 18,13 días lun 02/12/13 jue 26/12/13 Análisis 12 días lun 02/12/13 mar 17/12/13 Cubrimiento del "pliego" (Anteproyecto) 3 días lun 02/12/13 mié 04/12/13 Entrega del "pliego" 1 día jue 05/12/13 jue 05/12/13 Estudio de alternativas 3 días vie 06/12/13 mar 10/12/13 Casos de Uso 2 días mié 11/12/13 jue 12/12/13 Diagrama de Clases 2 días mié 11/12/13 jue 12/12/13 Diagrama de Interacción 2 días vie 13/12/13 lun 16/12/13 Modelado de datos 3 días vie 13/12/13 mar 17/12/13 Selección de tecnologías 1 día mié 11/12/13 mié 11/12/13 Diagrama de componentes 1 día mar 17/12/13 mar 17/12/13 Diseño 2 días mié 18/12/13 jue 19/12/13 Diseño de la arquitectura 2 días mié 18/12/13 jue 19/12/13 Implementación 2,13 días vie 20/12/13 mar 24/12/13 Preparación del servidor Tomcat 3 horas vie 20/12/13 vie 20/12/13 Preparación de la Base de Datos PostgreSQL 3 horas vie 20/12/13 vie 20/12/13 Preparación de la Base de Datos Cassandra 2 horas vie 20/12/13 vie 20/12/13 Preparación del Entorno de Desarrollo STS 2 horas lun 23/12/13 lun 23/12/13 Preparación de Solr 1 día vie 20/12/13 vie 20/12/13 Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 45

46 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Planificación del Proyecto y Resumen de Presupuestos Configuración del SVN 5 horas lun 23/12/13 lun 23/12/13 Configuración de Maven 4 horas lun 23/12/13 mar 24/12/13 Test 1 día mar 24/12/13 mié 25/12/13 Test de software 1 día mar 24/12/13 mié 25/12/13 Test de servidores 1 día mar 24/12/13 mié 25/12/13 Test de base de datos 1 día mar 24/12/13 mié 25/12/13 Entrega de propuesta y documentación 1 día mié 25/12/13 jue 26/12/13 Tabla 9. Planificación. Ajuste Listado Tareas. Previo A este componente sólo le ha afectado el retraso en el comienzo de las tareas, pues la planificación se ha hecho de fin a inicio. Nombre de tarea Duración Comienzo Fin Componente Registrador 26 días jue 26/12/13 vie 31/01/14 Ajustes de cambios introducidos por el cliente 1 día jue 26/12/13 vie 27/12/13 Análisis 2 días vie 27/12/13 mar 31/12/13 Casos de Uso 1 día vie 27/12/13 lun 30/12/13 Diagrama de Clases 1 día vie 27/12/13 lun 30/12/13 Diagrama de Interacción 1 día lun 30/12/13 mar 31/12/13 Implementación 18 días mar 31/12/13 vie 24/01/14 Búsqueda de funciones StringMetrics para medida entre dos cadenas 10 días mar 31/12/13 mar 14/01/14 Desarrollo del Matcher 10 días mar 31/12/13 mar 14/01/14 Por campo 10 días mar 31/12/13 mar 14/01/14 Por método 8 días mar 31/12/13 vie 10/01/14 Tratamiento de los Servicios Web 5 días mar 14/01/14 mar 21/01/14 Persistencia de los nuevos Servicios Web 2 días mar 14/01/14 jue 16/01/14 Introspección de los Servicios Web 5 días mar 14/01/14 mar 21/01/14 Tratamiento de la Universidad 5 días vie 10/01/14 vie 17/01/14 Persistencia de la Universidad 2 días mar 21/01/14 jue 23/01/14 Refactorización 1 día jue 23/01/14 vie 24/01/14 Test 4 días vie 24/01/14 jue 30/01/14 Probar componente Matcher 1 día vie 24/01/14 lun 27/01/14 Refinamiento de los emparejamientos 1 día lun 27/01/14 mar 28/01/14 Probar persistencia de Servicios Web 1 día mar 28/01/14 mié 29/01/14 Probar persistencia de Universidades 1 día mié 29/01/14 jue 30/01/14 Entrega del componente REGISTRADOR 1 día jue 30/01/14 vie 31/01/14 Tabla 10. Planificación. Ajuste Listado Tareas. Registrador 46 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

47 Planificación del Proyecto y Resumen de Presupuestos Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Aquí se ha introducido el retraso de dos días en la tarea de Búsqueda de funciones con StringMetrics, se han tenido que hacer unas mediciones extra pues las reglas son aplicables al inglés, entonces se debía de comprobar que podrían ser útiles en castellano. Nombre de tarea Duración Comienzo Fin Componente Recolector 23 días vie 31/01/14 mié 05/03/14 Ajustes sobre el componente anterior del cliente 1 día vie 31/01/14 lun 03/02/14 Análisis 1 día lun 03/02/14 mar 04/02/14 Diagrama de clases 1 día lun 03/02/14 mar 04/02/14 Casos de Uso 1 día lun 03/02/14 mar 04/02/14 Implementación 18 días mar 04/02/14 vie 28/02/14 Conexión con los Servicios Web concretos de cada Universidad 5 días mar 04/02/14 mar 11/02/14 Recolección de datos de los Servicios Web 5 días mar 11/02/14 mar 18/02/14 Transformación de los datos de los Servicios Web concretos en un modelo común 8 días mar 18/02/14 vie 28/02/14 Refactorización 1 día mar 04/02/14 mié 05/02/14 Test 2 días vie 28/02/14 mar 04/03/14 Testeo del componente Recolector 1 día vie 28/02/14 lun 03/03/14 Test de integración 1 día lun 03/03/14 mar 04/03/14 Entrega del componente RECOLECTOR 1 día mar 04/03/14 mié 05/03/14 Tabla 11. Planificación. Ajuste Listado Tareas. Recolector Sin retrasos, tan sólo se ha movido la fecha, la duración es la misma. Nombre de tarea Duración Comienzo Fin Componente Buscador 25 días mié 05/03/14 mié 09/04/14 Ajustes sobre el componente anterior del cliente 1 día mié 05/03/14 jue 06/03/14 Análisis 1 día jue 06/03/14 vie 07/03/14 Casos de uso 1 día jue 06/03/14 vie 07/03/14 Diagrama de clases 1 día jue 06/03/14 vie 07/03/14 Diseño 17 días mié 05/03/14 vie 28/03/14 Diseño de Interfaces de Usuario 9 días mié 05/03/14 mar 18/03/14 Diseño de estilos del sitio web 8 días mar 18/03/14 vie 28/03/14 Implementación 18 días vie 07/03/14 mié 02/04/14 Configuración de Solr para el buscador 9 días vie 07/03/14 jue 20/03/14 Integración de Solr con el sitio web mediante Spring Data Solr 4 días vie 07/03/14 jue 13/03/14 Implementación de la portada 5 días vie 07/03/14 vie 14/03/14 Implementación del registro de Servicios Web 10 días vie 07/03/14 vie 21/03/14 Implementación del apartado de ayuda 2 días jue 20/03/14 lun 24/03/14 Implementación de la persistencia con Spring Data JPA 5 días jue 13/03/14 jue 20/03/14 Diseño de interfaces responsivas con Bootstrap 7 días vie 14/03/14 mar 25/03/14 Realización de formularios mediante AJAX 5 días vie 21/03/14 vie 28/03/14 Integración de componentes Buscador - Matcher - Recolector 5 días lun 24/03/14 lun 31/03/14 Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 47

48 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Planificación del Proyecto y Resumen de Presupuestos Refactorización 2 días lun 31/03/14 mié 02/04/14 Test 4 días mié 02/04/14 mar 08/04/14 Comprobar comportamiento del diseño responsivo en interfaces móviles y pantallas 1 día mié 02/04/14 jue 03/04/14 grandes Comprobar integración entre buscador y los otros dos componentes 1 día jue 03/04/14 vie 04/04/14 Comprobar el sitio web 1 día vie 04/04/14 lun 07/04/14 Comprobar la capa de servicio 1 día lun 07/04/14 mar 08/04/14 Entrega del componente BUSCADOR 1 día mar 08/04/14 mié 09/04/14 Tabla 12. Planificación. Ajuste Listado Tareas. Buscador Sin retrasos de duración, tan solo se mueve la fecha. Nombre de tarea Duración Comienzo Fin Componente Publicador 12 días mié 09/04/14 vie 25/04/14 Ajustes sobre el componente anterior del cliente 1 día mié 09/04/14 jue 10/04/14 Análisis 1 día jue 10/04/14 vie 11/04/14 Casos de uso 1 día jue 10/04/14 vie 11/04/14 Diagrama de clases 1 día jue 10/04/14 vie 11/04/14 Implementación 5 días vie 11/04/14 vie 18/04/14 Generar un publicador para el acceso por Servicio Web 5 días vie 11/04/14 vie 18/04/14 Integración de componentes de la aplicación 5 días vie 11/04/14 vie 18/04/14 Refactorización 5 días vie 11/04/14 vie 18/04/14 Test 5 días vie 18/04/14 vie 25/04/14 Asegurar que se cumplen todos los test previos 5 días vie 18/04/14 vie 25/04/14 Entrega de la aplicación completa 1 día vie 25/04/14 lun 28/04/14 Tabla 13. Planificación. Ajuste Listado Tareas. Publicador Tampoco existen retrasos en este componente, se mueve la fecha por la demora introducida en el inicio. 48 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

49 Planificación del Proyecto y Resumen de Presupuestos Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 4.2 Conclusiones de la planificación Afortunadamente, la planificación se ajustó bastante a lo que finalmente sucedió durante el desarrollo del proyecto debido a que se realizó una planificación de fin a inicio. Esto puede indicar dos cosas: por un lado, los plazos han sido sobreestimados o bien se han excedido los recursos asignados y habría sido suficiente con menos personal con lo que a priori parece una buena planificación, igual al final no lo es tanto por el ajuste final aunque los recursos que no se utilizaron que estaban sobreestimados se derivaron a otros proyectos en curso. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 49

50 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Planificación del Proyecto y Resumen de Presupuestos 4.3 Resumen del Presupuesto Item Concepto Cantidad Precio( ) Subtotal( ) 1 Licencias , ,00 2 Formación 1 850,00 850,00 3 Desarrollo , ,50 4 Otros 1 800,00 800,00 TOTAL (sin IVA) ,50 TOTAL (con 21% IVA) ,07 Tabla 14. Resumen del Presupuesto 50 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

51 Análisis Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 5. Análisis 5.1 Definición del Sistema Determinación del Alcance del Sistema Como se ha venido comentando, el alcance del sistema es construir una aplicación multimodular que permita por una parte registrar servicios web de una universidad y clasificarlos mediante una serie de parámetros. Además también deberá de realizar el emparejamiento de los campos entre el modelo de referencia de forma semiautomática aunque necesitará de supervisión. Los servicios web que estén registrados, podrán ser localizados de forma sencilla mediante un sistema buscador el cual tendrá diferentes campos indexados para realizar búsquedas bien sea por el nombre de la universidad, por la categorización del servicio web El registro de los servicios web deberá de tener la mínima intervención humana, es decir, el sistema se encargará de recolectar la máxima información posible del fichero WSDL que presente la universidad a registrar. Esto incluiría la identificación de todos los métodos que incluya el WSDL, sus parámetros y sus clases y además se hará la relación con el sistema de referencia entre las clases. Por otro lado, el sistema también deberá publicar un servicio web que hará posible la obtención de información de todos los servicios web que están registrados facilitando la recolección de datos por parte de sistemas de terceros que quieran acceder a la información de forma unificada pues todos los datos que obtengan tendrán todos el mismo formato. Este servicio web tendrá disponible un método que permitirá la recolección de las becas universitarias bien por categoría, por parámetro o por universidad. El sistema se deberá de implementar de forma que sea lo suficientemente trivial y sencillo reciclar el desarrollo y adaptarlo para trasladarlo a otros ámbitos como pueden ser la sanidad, el sector bancario o similares. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 51

52 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Análisis 5.2 Requisitos del Sistema Obtención de los Requisitos del Sistema Requisitos funcionales Código Nombre Requisito Descripción del Requisito RF1.1 Registrar Universidad Se debe permitir a las universidades registrarse en el sistema. RF1.1.1 Registrar el servicio web de la universidad Se tendrá que registrar por cada universidad un fichero WSDL. RF1.2 Extraer información del servicio web de la universidad RF1.2.1 Detectar los métodos disponibles en el servicio web RF1.2.2 Detectar los modelos del servicio web Se deberá recabar toda la información posible del fichero ofrecido por la universidad. Se deberán detectar los métodos que ofrece el servicio web y que se entiende serán relacionados con becas universitarias. Se deberán detectar también los atributos de las clases del servicio web para poder emparejarse con los del modelo de referencia. RF1.2.3 Emparejar campos El sistema deberá intentar emparejar los campos de la clase del servicio web de la universidad de forma automática con los del modelo de referencia. RF Sistema de aprendizaje El sistema deberá de aprender con cada registro que se haga en el sistema. RF Apoyo con String Metrics El sistema, si no es capaz de decidir el emparejamiento se basará en una serie de funciones de String Metrics para apoyar la decisión. RF1.2.4 Almacenar los Estos emparejamientos realizados, deberán ser emparejamientos almacenados para su uso posterior. RF1.3 Buscar servicios web El sistema deberá permitir la búsqueda mediante un buscador al estilo Google. RF1.3.1 Por categoría El buscador deberá permitir realizar búsquedas por categorías (vicerrectorado, alumno, curso). RF1.3.2 Por nombre El buscador deberá permitir realizar búsquedas por nombre de la universidad. RF1.4 Interfaz web El sistema deberá de ofrecer una interfaz web para poder realizar el registro y la búsqueda de los servicios web. RF1.4.1 Interfaz de consola El sistema también deberá de ofrecer el registro de nuevos servicios web mediante una aplicación de consola. RF1.5 Recolectar información El sistema deberá de permitir recolectar información de los servicios web que estén registrados. RF1.5.1 Forma homogénea El sistema deberá de ofrecer los datos de forma homogénea, es decir, deberá de convertir los datos recibidos del servicio web y convertirlos a un 52 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

53 Análisis Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Código Nombre Requisito Descripción del Requisito formato común. RF1.5.2 Publicar Servicio Web El sistema deberá de ofrecer un servicio web para que los sistemas de terceros puedan recolectar la información. RF1.5.3 Parametrizable El servicio web deberá de poder obtener becas por alumno, vicerrectorado o universidad. Tabla 15. Requisitos funcionales Requisitos no funcionales Código Nombre Requisito Descripción del Requisito RNF1.1 Lenguaje de El lenguaje utilizado en la aplicación será Java. programación RNF1.2 Tipo del SGBD El sistema deberá de tener dos sistemas gestores de bases de datos, uno No SQL y otro Relacional. RNF1.2.1 SGBD El SGBD No SQL deberá de ser compatible con un sistema Windows. RNF1.3 JavaScript no disponible La web deberá de funcionar de forma transparente independientemente de si se tenga activado el intérprete de JavaScript. RNF1.4 Interfaz responisva La interfaz web deberá de ser adaptable a cualquier tipo de pantalla. RNF1.5 Capacidad de carga El sistema deberá de ser posible de aguantar las conexiones que reciba de parte de las diferentes universidades. RNF1.6 Modularidad La aplicación deberá de ser ampliable o al menos modificada de forma sencilla para poder ajustarse a otros ámbitos, no solo al universitario. RNF1.7 Apache Solr El sistema deberá de implementar un buscador, concretamente el motor de búsqueda será Apache Lucene, en su versión web. RNF1.8 Multiproyecto El sistema deberá de ser un sistema desarrollado mediante multiproyecto y con Apache Maven para poder desplegarlo en el repositorio de componentes. Tabla 16. Requisitos no funcionales Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 53

54 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Análisis Identificación de Actores del Sistema Base de datos relacional Es el servidor de base de datos relacional del sistema, en ciertas ocasiones se tendrán que almacenar datos, consultar operaciones en definitiva realizar trabajo de almacenamiento y recuperación de información por lo que se estima que es una parte importante de la aplicación y puede tener entidad como si misma Matcher Componente del sistema de registro, es el encargado de realizar las operaciones de los emparejamientos de campos, consulta con la base de datos NoSQL, aplica las reglas de String Metrics a los campos de los servicios web obtenidos y decide los emparejamientos Recolector Subsistema recolector que es utilizado por el publicador. Se encarga de obtener los datos invocando a los diferentes servicios web registrados Servidor de búsqueda Es el servidor dedicado al buscador que tendrá montado un entorno con Apache Solr. El será capaz de resolver las consultas de las búsquedas que realicen los usuarios de la aplicación además de indexar los nuevos servicios web registrados Servidores externos Agrupación de los servidores de terceros. Estos almacenarán y expondrán los servicios web de cada universidad Sistema El propio sistema, la aplicación Usuario Usuario que interactuará con la aplicación. Su función será la de buscar universidades, registrarlas y consultar datos de las mismas. 54 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

55 Análisis Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Especificación de Casos de Uso Ilustración 9. Resumen de los casos de uso Nombre del Caso de Uso Registrar servicios web Descripción Creará una nueva universidad en el sistema y registrará su servicio web. En el proceso, se encargará de recoger información del servicio web y de emparejar los campos del servicio con los del modelo de referencia. Nombre del Caso de Uso Buscar servicios web Descripción Bien sean servicios web, universidades, métodos Este caso de uso engloba todo lo relacionado con la búsqueda de información de la aplicación y del uso del sistema de búsqueda. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 55

56 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Análisis Nombre del Caso de Uso Publicar los servicios web Descripción El sistema publicará un servicio web para que las universidades que lo deseen puedan invocarlo y del cual obtendrán becas en función de los parámetros que definan de todas las universidades que estén registradas. Nombre del Caso de Uso Obtener datos de los servicios web Descripción El sistema recolectará información de los servicios web. Es decir, invocará cada servicio web registrado para obtener sus becas en función a los criterios definidos en la llamada. Una vez obtenidos los datos, los transformará a un sistema de referencia común para poder devolver los datos de forma homogénea en lugar de obtener el formato de cada universidad. 56 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

57 Análisis Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 5.3 Identificación de los Subsistemas en la Fase de Análisis Para un mejor manejo y una mejor comprensión de la aplicación se ha dividido ésta en diferentes subsistemas en función de las tareas que realizan sus componentes. De este modo se pueden encontrar los siguientes: Buscador Registrador Recolector Publicador Descripción de los Subsistemas Subsistema Buscador Es el encargado de, en función de los parámetros que defina el usuario en la búsqueda web, traducirlos para entregárselos al motor de búsqueda y obtener los resultados que se ajusten. Además de integrar el componente de búsqueda también es el encargado de ofrecer la aplicación web del sistema Subsistema Registrador Este subsistema tiene como función realizar el registro de las nuevas universidades, además también se encargará de en el proceso de registro, obtener los datos del archivo WSDL presentado por la universidad en el registro y de realizar el emparejamiento de los campos del WSDL con los del modelo de referencia Subsistema Recolector Se encarga de conectarse al listado de servicios web que están almacenados, obtenidos de los registros que haya tenido la aplicación. Además de conectarse a los mismos, tendrá el objetivo de a partir de las reglas definidas de emparejamiento que se definieran en el registrador, devolver los datos en un formato que sea independiente de la universidad de la que se obtienen los datos Subsistema Publicador Su función es publicar los servicios web y hacer de nexo común entre todos los servicios web que estén registrados y las universidades que quieran obtener la información de las becas pues será el punto de acceso que tendrán para obtener los datos. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 57

58 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Análisis Descripción de los Interfaces entre Subsistemas Como una de las características del sistema es que fuera modular, desde el primer momento se diseñó como un sistema multiproyecto, es decir, Maven tiene la posibilidad de poder definir este concepto dentro de sus características por lo que cada uno de los subsistemas que se han descrito anteriormente son realmente un proyecto dentro del sistema que a su vez es otro proyecto padre en sí mismo. Esta habilidad resulta en que los componentes serán distribuidos a través de ellos en forma de bibliotecas JAR, para que cada subsistema pueda utilizar lo que necesite de los otros a modo de interfaces. De esta forma, se pueden encontrar las siguientes interfaces: MatcherManagerService, SearchEngineService, UniversityManagerService, OperationsWrapperService y WebServiceManagerService que serán las encargadas de ofrecer los servicios de cada componente a los demás. 58 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

59 Análisis Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 5.4 Diagrama de Clases Preliminar del Análisis Diagrama de Clases Ilustración 10. Diagrama de clases previo Descripción de las Clases Subsistema Registrador Nombre de la Clase Matcher Descripción Será la encargada de aplicar los métodos de String Metrics a los campos obtenidos en el recolector. Aunque antes deberá de conectarse a la base de datos NoSQL y obtener los emparejamientos previos realizados y comprobarlos. Responsabilidades Emparejar los campos entre los campos de la universidad y los del modelo de referencia. Atributos Propuestos DAO: Almacenar los mapeos resultantes Campos: Listado de campos obtenidos del servicio web. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 59

60 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Análisis Métodos Propuestos aplicarstringmetrics: Aplicará las funciones String Metrics para medir cuanto se parecen dos cadenas. buscaremparejamiento: Buscará en la base de datos de emparejamientos previos. almacenaremparejamientos: Guardará en base de datos los emparejamientos realizados. Nombre de la Clase RecolectorInformacionServiciosWeb Descripción Se encargará de recoger información importante del fichero WSDL mediante la instanciación dinámica del mismo y combinándolo con reflectividad. Responsabilidades Recogerá toda la información posible: campos, métodos, retornos Además Atributos Propuestos WSDL: url del servicio web Campos: Campos obtenidos del servicio web Metodos: Métodos obtenidos del servicio web Métodos Propuestos getcampos: Obtendrá los campos de las clases del servicio web. getoperaciones: Obtendrá las operaciones que se pueden ejecutar en el servicio web Subsistema Buscador Nombre de la Clase BuscadorUniversidades Descripción Se comunicará con el buscador para realizar la búsqueda según los criterios propuestos por el usuario. Responsabilidades Traducir los parámetros introducidos por el usuario y comunicárselos al servidor Lucene para que realice la búsqueda. Presentar los resultados. Atributos Propuestos Parámetros: keywords que introducirá el usuario en el buscador. Métodos Propuestos Buscar: Realizará la llamada al interfaz de Solr. Nombre de la Clase ControladorWeb Descripción Será el encargado de filtrar las peticiones y mapearlas al método correspondiente según la dirección introducida en el navegador por el usuario. Responsabilidades Hacer de controlador Web. Atributos Propuestos 60 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

61 Análisis Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Métodos Propuestos Nombre de la Clase DAO Descripción Interactuará con la Base de Datos y será el encargado de realizar la persistencia de la aplicación Responsabilidades Gestionar comunicaciones con la base de datos. Obtener datos de la base de datos. Almacenar datos en la base de datos. Atributos Propuestos Métodos Propuestos almacenaruniversidad: Guardará una universidad en BD. almacenaremparejamiento: Guardará el emparejamiento en BD Subsistema Recolector Nombre de la Clase ConectorServiciosWeb Descripción Su función será la de conectarse a los distintos servicios web que estén registrados en la aplicación. Una vez conectado, hará las peticiones oportunas para obtener las becas, traducirlas al modelo de referencia y devolverlas. Responsabilidades Gestionar las conexiones con los servicios web registrados. Modificar los datos obtenidos para transformarlos a un modelo común. Atributos Propuestos WSDLs: listado de urls de los servicios web a invocar Emparejamientos: emparejamientos realizados previamente para unificar los resultados Métodos Propuestos invocarmetodo: Invocará el método correspondiente de forma dinámica sin generar el stub típico y con los parámetros indicados. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 61

62 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Análisis Subsistema Publicador Nombre de la Clase PublicadorServiciosWeb Descripción Deberá exponer un método capaz de hacer de entrada a las universidades para recolectar becas. Este método tendrá que ser lo suficientemente configurable para abarcar las diferentes configuraciones. Responsabilidades Ofrecer un WSDL con un método para recoger información de los servicios web registrados. Atributos Propuestos Categoria: Categoría que se quiere utilizar para filtrar las becas: Vicerrectorado, Alumno, Curso Universidad: Si se desea filtrar por universidad, su nombre Parametros: En caso de ser varios, filtros usar una lista de parámetros. Métodos Propuestos obtenerbecas: Obtendrá las becas llamando al recolector en función de los parámetros que se definan en la llamada. 62 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

63 Análisis Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 5.5 Análisis de Casos de Uso y Escenarios Registrar universidad Ilustración 11. Casos Uso. Registrar una universidad Precondiciones Poscondiciones Actores Descripción Registrar universidad El servidor de aplicaciones deberá de estar corriendo la aplicación y el usuario deberá de estar dentro de la página web. La universidad y sus emparejamientos deberán de estar almacenados en la base de datos. Usuario, Matcher Usuario: 1. El usuario introducirá los datos de la universidad en el formulario. 2. El usuario validará los emparejamientos ofrecidos por el sistema Matcher: 1. Emparejará los campos de forma automática mediante una estimación. Se almacenarán los emparejamientos y la universidad. Variaciones (escenarios secundarios) - Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 63

64 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Análisis Registrar universidad Excepciones Notas - El usuario no ha introducido los campos correctos en el formulario. El servicio web de la universidad no está disponible Obtener información del servicio web Ilustración 12. Casos Uso. Obtener información del servicio web Precondiciones Poscondiciones Actores Descripción Obtener información del servicio web El servicio web de la universidad a inscribirse ha de estar disponible El sistema deberá presentar los emparejamientos Sistema, Servidores Externos Sistema: 1. Instanciará dinámicamente el servicio web. 2. Recogerá los campos obtenidos mediante reflectividad. Servidores Externos: 1. Responderá a la llamada del sistema cuando se solicite el servicio web. Variaciones (escenarios secundarios) Excepciones Notas - - El servicio web de la universidad no está disponible. 64 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

65 Análisis Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Realizar el emparejamiento de campos Ilustración 13. Casos Uso. Emparejamiento de campso Precondiciones Poscondiciones Actores Descripción Realizar el emparejamiento de campos Se deben de haber obtenido los campos del servicio web El sistema devolverá los emparejamientos realizados automáticamente Matcher, Sistema, Usuario Matcher: 1. Consultar contra el sistema de conocimiento si ya se ha realizado un emparejamiento igual previamente. 2. Aplicar reglas String Metrics en comparación con los resultados obtenidos del sistema de conocimiento. 3. Evaluar los resultados en función de un factor. 4. Presentar los resultados obtenidos autónomamente. Usuario: Variaciones - (escenarios secundarios) Excepciones - Notas - 1. Validar los parámetros que se le presentan y rectificarlos si no son correctos. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 65

66 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Análisis 5.6 Análisis de Interfaces de Usuario El concepto que se diseñó para las interfaces de usuario es simple. Una pantalla con un formulario para el registro de las nuevas universidades, una pantalla de buscador que muestre los resultados y la visión del detalle de cada una de las universidades registradas Formulario de registro Ilustración 14. Interfaz de Usuario. Formulario de Registro Esta pantalla sería un prototipo de lo que se buscaría a la hora de registrar las nuevas universidades. En la parte superior siempre hay que tener en cuenta que se tendrá un buscador para poder buscar las universidades que ya estén registradas. La otra parte de la pantalla, se dedicará a un formulario que recogerá datos de la universidad como puede ser el nombre, la dirección de sus servicios web, los emparejamientos de los campos de la Beca y del Solicitante, sus métodos del servicio web 66 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

67 Análisis Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Buscador Ilustración 15. Interfaz de Usuario. Buscador Esta sería una pantalla prototípica del listado de resultados que presentaría el buscador por ejemplo al buscar un término que pudiera ser Universidad de Oviedo. En el listado se pueden ver todas las operaciones que ofrecería la universidad y se seleccionará cualquiera del listado para ver el detalle de la misma Detalle de Universidad Ilustración 16. Interfaz de Usuario. Detalle Universidad En el detalle de la universidad se mostrará el nombre, su URL donde encontrar su servicio web y el catálogo de operaciones que presenta el servicio web además de indicar la categoría de cada una de las operaciones. Como en todos los casos, la zona superior será destinada al buscador con el cajetín de texto para introducir las palabras claves y el botón de buscar. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 67

68 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Análisis Diagrama de Navegabilidad Ilustración 17. Diagrama de Navegabilidd 68 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

69 Análisis Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 5.7 Especificación del Plan de Pruebas En este apartado se especificarán los tipos de pruebas que se tendrán en cuenta a la hora de comprobar el buen funcionamiento de la aplicación. Pruebas Unitarias: Estas pruebas se realizarán mediante la herramienta JUnit y se podrán ejecutar tanto de forma autónoma, como cada vez que se haga un empaquetado de la aplicación automáticamente (Maven antes de realizar un empaquetado de la aplicación se encarga de pasar las pruebas unitarias para en caso de fallar, no realizar el mismo). Pruebas de Integración: Debido a que la aplicación está conformada por diferentes componentes, se deberán testear los componentes para conocer si la integración entre los mismos es la adecuada. Pruebas del Sistema: Debido a que el sistema está basado en varios componentes, es una buena práctica saber que a la hora de introducir un nuevo registro, éste se replica en todos los repositorios de información que existen en la aplicación, de esta forma se conocerá si la aplicación es consistente. También es una buena prueba del sistema conocer los consumos de memoria que tiene la aplicación, de CPU, etc. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 69

70

71 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 6. Diseño del Sistema 6.1 Arquitectura del Sistema Diagramas de Paquetes Modelo Ilustración 18. Arquitectura. Diagrama de Paquetes Ilustración 19. Arquitectura. Paquete Modelo Este paquete contendrá todos los modelos necesarios para utilizar la aplicación. Además también incluye las interfaces de persistencia y las clases de Utilidad. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 71

72 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Service Ilustración 20. Arquitectura. Paquete Service Este paquete incluye las interfaces correspondientes a la capa de servicio de la aplicación. Tanto este paquete como el anterior se distribuirán a lo largo de los otros paquetes pues contienen las operaciones de negocio necesarias para el funcionamiento desencapsulado de la aplicación Buscador Ilustración 21. Arquitectura. Paquete Buscador Incluye todas las clases necesarias para gestionar el controlador de la aplicación y la gestión del registro de nuevos servicios web por formulario, así como las búsquedas de los servicios web registrados. 72 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

73 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Recolector Ilustración 22. Arquitectura. Paquete Recolector Es el encargado de obtener las becas según la categoría, de esta forma ofrecerá una clase por cada una de las categorías disponibles para la búsqueda Registrador Ilustración 23. Arquitectura. Paquete Registrador Es el encargado de llevar el peso del registro de nuevos servicios web. En él se implementan las operaciones necesarias para el emparejador de campos, instanciador de servicios web de forma dinámica Publisher Se encarga de ofrecer los servicios web para que las aplicaciones puedan acceder a la recolección de las becas que ofrezcan los servicios web registrados en el sistema. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 73

74 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Diagramas de Componentes Los componentes del sistema coinciden con los paquetes mostrados en el apartado anterior con lo que para su revisión puede volver a consultarlo Diagramas de Despliegue Ilustración 24. Diagrama Despliegue Nodo 1 Contendrá a los componentes de la aplicación: Buscador, Registrador, Recolector y Publisher. Además este estará ejecutado dentro del Contenedor de Aplicaciones Apache Tomcat 7 e interactuará con el servidor buscador Apache Solr, con la base de datos relacional PostgreSQL, con Apache Cassandra y además con los diferentes servicios web de las diferentes universidades Nodo 2 y Nodo 3 Servicios web de diferentes universidades. Estos servicios web están expuestos públicamente mediante un WSDL. 74 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

75 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Nodo 4 Es el servidor que contiene el sistema gestor de bases de datos relacional PostgreSQL en modo servidor que almacenará parte de la persistencia de la aplicación. La conexión con este servidor se realizará mediante un interfaz JDBC. Este nodo puede agregar nuevos clusters en función de la carga que se demande del mismo Nodo 5 Contiene un servidor Apache Cassandra con una base de datos NoSQL clusterizable en modo servidor. Podrá generar replicación maestro-esclavo si se requiriera por motivos de rendimiento de la aplicación Nodo 6 En este nodo se instalará un servidor Jetty que se encargará de ejecutar la aplicación Apache Solr. Este servidor será el encargado de llevar la búsqueda de los servicios web registrados, que él mismo se encarga de indexar en sus diccionarios. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 75

76 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema 6.2 Diseño de Clases Diagrama de Clases Debido al entramado de referencias entre clases y a la cantidad de clases que hay es inviable realizar un único diagrama donde se representen todas las clases, es por esto que se han dividio por componentes para facilitar la comprensión y a su vez, en paquetes Buscador Controller Ilustración 25. Diagrama Clases. Controller 76 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

77 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Search Ilustración 26. Diagrama Clases. Search Ilustración 27. Diagrama Clases. SearchView Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 77

78 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema University Ilustración 28. Diagrama Clases. University Ilustración 29. Diagramas Clases. Diagramas Clases 78 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

79 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Validator Ilustración 30Diagrama Clases. Validator Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 79

80 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema View Ilustración 31. Diagrama Clases. View 80 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

81 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Model Model Ilustración 32. Diagramas Clases. Model NoSQL Ilustración 33. Diagramas Clases. NoSQL Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 81

82 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Persistence Ilustración 34. Diagramas Clases. Persistence Solr Ilustración 35. Diagramas Clases. Class Utils Ilustración 36. Diagramas Clases. Util 82 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

83 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Wrapper Ilustración 37. Diagramas Clases. Wrapper Publisher Publisher Ilustración 38. Diagramas Clases. Publisher Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 83

84 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Recolector Recolector Ilustración 39. Diagramas Clases. Recolector Ws Ilustración 40. Diagramas Clases. Ws 84 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

85 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Registrador Matcher Ilustración 41. Diagramas Clases. Matcher Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 85

86 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Presentation Ilustración 42. Diagramas Clases. Presentation 86 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

87 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo University Ilustración 43. Diagramas Clases. University Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 87

88 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Ws Ilustración 44. Diagrama Clases. Ws 88 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

89 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Service Builder Ilustración 45. Diagramas Clases. Builder Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 89

90 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Business Ilustración 46. Diagramas Clases. Business Exception Ilustración 47. Diagramas Clases. Exception 90 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

91 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Matcher Ilustración 48. Diagramas Clases. Matcher SearchEngine Ilustración 49. Diagramas Clases. SearchEngine Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 91

92 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Solr Ilustración 50. Diagramas Clases. Solr University Ilustración 51. Diagramas Clases. University 92 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

93 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Ws Ilustración 52. Diagramas Clases. Ws Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 93

94 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema 6.3 Diagramas de Interacción y Estados Registro de una nueva Universidad Ilustración 53. Diagrama Secuencia. Registro Universidad 1 El controlador de la aplicación deriva a la vista representada por CheckOperationsView. Este lo primero que realiza es la validación de los campos recibidos del formulario. Se intenta encontrar la universidad en la base de datos, se obtienen las operaciones, se intenta encontrar la universidad por otros parámetros todo esto para comprobar que la universidad no se ha registrado previamente. Finalmente se devuelve el control al controlador Spring para que represente la jsp del siguiente paso del formulario. Ilustración 54. Diagrama Secuencia. Registro Universidad 2 94 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

95 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo En esta segunda parte del registro, es cuando se seleccionan las operaciones y el nombre del modelo con lo que se deberán de validar los parámetros de entrada del formulario y se devolverá el control al controlador de Spring a la jsp para seleccionar y emparejar los campos de la Beca. Ilustración 55. Diagrama Secuencia. Registro Universidad 3 Antes de presentar el formulario, se obtendrán los campos del servicio web de la universidad que se registran y se intentan emparejar con los del modelo de referencia. Una vez seleccionados los campos por el usuario, se proceden a validar antes de devolver el control a la jsp correspondiente para introducir los datos del Solicitante. Ilustración 56. Diagrama Secuencia. Registro Universidad 4 Como en el caso anterior, antes de presentar el formulario, se obtendrán los emparejamientos que se creen idóneos entre el Solicitante y el modelo de referencia. Una vez presentado, se seleccionan los emparejamientos por parte del usuario y se validan los campos que estén de forma correcta. Cuando se tienen los emparejamientos confirmados se procederá a guardar todos los emparejamientos y datos que se han recogido en todo el proceso, de esta forma se evita que el sistema quede en forma inconsistente. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 95

96 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Buscador Ilustración 57. Diagrama Secuencia. Buscador Una vez el usuario introduce los conceptos de la búsqueda, el controlador derivará en la vista la ejecución, que a través de los managers terminará consultando contra el servidor de búsqueda los conceptos introducidos por el usuario Publicador Ilustración 58. Diagrama Secuencia. Publicador A la hora de la llamada que realizarán los sistemas de terceros cuando quieran consultar datos de becas, lo tendrán que hacer a través del ScholarshipManager, que configurarán con una serie de parámetros (categoría, universidad) y se encargará de obtener los mapeos de la universidad concreta entre el modelo de referencia y los modelos de la universidad para finalmente realizar la invocación dinámica al servicio web de cada universidad. 96 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

97 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 6.4 Diagramas de Actividades Ilustración 59. Diagrama Actividad. Registro Universidad Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 97

98 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema 6.5 Diseño de la Base de Datos Descripción del SGBD Usado El Sistema Gestor de Bases de Datos utilizado es PostgreSQL en modo servidor. Una descripción más detallada se puede encontrar en las Referencias Técnicas Integración del SGBD en Nuestro Sistema La función que tiene el sistema gestor de bases de datos en nuestro sistema es la de almacenar las nuevas universidades que se registren en la aplicación y los mapeos entre los campos de cada universidad y sus operaciones Diagrama E-R Ilustración 60. Diagrama E-R 98 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

99 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 6.6 Diseño de la Interfaz Descripción de la Interfaz Ilustración 61. Interfaz. Página de inicio La pantalla de inicio es similar a la de cualquier aplicación web que se pueda encontrar. Al estar hablando de un buscador, el componente más destacado y central será el cuadro de texto y el botón con la lupa de buscar que nos servirá de buscador, además de encontrarse con un cuadro de bienvenida que conduce a la zona de información. La parte superior será fija y constará de una serie de ítems que harán de menú de navegación dentro de la página. Este menú superior, incluirá un elemento para volver al inicio de la aplicación, otro para ir al formulario de registro de nuevos servicios web, otro para acceder a la información del recolector y otro para acceder a la información de la aplicación. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 99

100 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Ilustración 62. Interfaz. Formulario de registro Una vez estemos ante el formulario de registro, se podrán identificar en la zona central de la página una serie de números, que no harán más que indicar en el paso que se encuentra el usuario dentro del proceso de registro. Además todos los formularios tendrán la capacidad de ir hacia adelante y de reiniciar el formulario, para ello se dispone de un botón azul para continuar y uno rojo para reiniciar. Estos campos que se han de cubrir en el registro, estarán marcados con símbolos de admiración en caso de que sean obligatorios. 100 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

101 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Ilustración 63. Interfaz. Selección de Operaciones Una vez avanzamos a la siguiente sección del formulario se puede comprobar que la distribución es igual que en el formulario anterior, aunque ahora se seleccionarán las operaciones mediante botones de tipo radio y una caja de texto para registrar el nombre del modelo. Ilustración 64. Interfaz. Emparejamiento campos Beca Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 101

102 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema En el tercer paso del registro del servicio web, se puede comprobar que es el mismo estilo que el formulario anterior. Campos del formulario que representan atributos de la clase del modelo. Ilustración 65. Interfaz. Emparejamiento campos Solicitante Cuarto paso del registro, el formulario es igual que en el caso anterior, pues cada campo sigue siendo un atributo de la clase Solicitante del servicio web. 102 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

103 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Ilustración 66. Interfaz. Formulario guardado Pantalla que indica que el formulario se ha guardado con éxito. Se ve reflejado el quinto paso y tras informar de que se ha tenido éxito en la operación, se permite trasladar al usuario al inicio. Ilustración 67. Interfaz. Buscador Una vez se ha registrado el servicio web, se puede utilizar el buscador para localizarlo. Se puede localizar por el nombre de la universidad, por algún nombre del método o por categoría. Tras realizar la búsqueda, se presentan los resultados para poder acceder al que más nos convenza. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 103

104 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Ilustración 68. Interfaz. Detalle Universidad Tras seleccionar el resultado del buscador que más se ajuste a los criterios, lo que muestra la aplicación es el detalle de la universidad seleccionada, donde se mostrará el nombre de la universidad, la URL del fichero WSDL y los métodos de cada categoría que se pueden invocar. Ilustración 69. Interfaz. Pantalla del recolector En la tercera opción que aparece en el menú superior se puede ver el Recolector, este trasladará al usuario a la página donde se informa de la dirección del recolector y de las operaciones invocables por los usuarios además de una explicación. 104 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

105 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Ilustración 70. Interfaz. Información de la aplicación La aplicación también dispone de una pantalla de información que es la cuarta opción del menú superior. Desde cada uno de los párrafos que se presentan y que cada uno describe una funcionalidad disponible en la página web, se puede ir a la funcionalidad desde el enlace al final del texto. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 105

106 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Descripción del Comportamiento de la Interfaz A la hora de mostrar mensajes de error o avisos, la aplicación generará unos mensajes en una especie de burbujas de color anaranjado, que el usuario podrá cerrar en el aspa superior derecha para que los mensajes desaparezcan. Ilustración 71. Interfaz. Mensaje informativo Si por el contrario, en un campo marcado con el símbolo de admiración no introducimos el texto o la aplicación deduce que no es correcta la operación, también nos dará un mensaje de error como el siguiente: Ilustración 72. Interfaz. Mensajes de Error 106 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

107 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 6.7 Especificación Técnica del Plan de Pruebas A la hora de probar el software que se ha desarrollado se ha probado en dos equipos de características lo suficientemente diferentes como son: Portátil o o o o Intel i7 3610QM (2.3GHz) 6 GB RAM HDD 1TB Windows 7 Home Premium 64 bits Sobremesa o Intel X o 4GB RAM o HDD 500 GB o Windows 7 Professional 64 bits Las pruebas que se realizarán estarán dentro del multiproyecto entregado dentro del CD de la aplicación Pruebas Unitarias La realización de las pruebas unitarias se llevará a cargo mediante la herramienta JUnit. Esta herramienta se encargará de ejecutar las pruebas y determinar si son correctas o la aplicación falla alguno de los tests. Estas pruebas se ejecutarán siempre cada vez que se realice un despliegue de la aplicación a cargo de Maven. Las clases / métodos que se han decidido probar dentro de la aplicación son aquellas que son factibles de que puedan dar problemas. Es decir, no se probarán modelos o managers que se utilicen como pass-through para redundar en una persistencia en la base de datos, por ejemplo BecaBuilder Con el método: testgetbeca: Se encargará de obtener unas becas concretas de un servicio web registrado en la aplicación. Además comprobará si la beca recibida está bien construida. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 107

108 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema MatcherManagerService Con los métodos: testmatch: Comprueba la realización de una serie de emparejamientos automáticos generados por la aplicación respecto a una serie de campos concretos. testsavemodelwrapper: Realiza la prueba de guardar el modelo en Cassandra. testsaveoperationwrapper: Realiza la prueba de guardar la operación en Cassandra SearchEngineService Con los métodos: testsearchoperations: Realiza una prueba a buscar en el servidor de buscador sobre operaciones registradas anteriormente. testsearchuniversities: Realiza una prueba a buscar en el servidor de buscador sobre universidades registradas anteriormente UniversityManagerService Con los métodos: testsave: Simula un proceso de registro de una universidad. testremove: Prueba a borrar una universidad creada anteriormente. testfinduniversity: Prueba a encontrar una universidad. testfinduniversitybywsdl: Prueba a encontrar una universidad mediante la dirección de su servicio web. testfinduniversitybyname: Prueba a encontrar una universidad mediante el nombre de la universidad. 108 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

109 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo WebServiceManagerService Con los métodos: testfailwrongargumentnumber: Comprueba que la aplicación falla cuando no se le pasa el número adecuado de parámetros (derivado de la instanciación dinámica). testfailbadarguments: Comprueba que los tipos de los parámetros recibidos son los adecuados. testfailmethod: Comprueba que la aplicación falla como debe fallar si no se invoca a un método disponible. testfailwsdl: Comprueba que la aplicación falla si no está el WSDL disponible. testgetoperations: Realiza una prueba para obtener las operaciones disponibles en un WSDL. testgetoperationsios: Obtiene los parámetros de entrada y los de retorno de los diferentes métodos del servicio web. testgetclassfields: Obtiene los atributos de una clase mediante introspección. testgetbecasbyparam: Prueba a obtener una serie de becas realizando la instanciación dinámica de servicios web Pruebas de Integración y del Sistema Para la realización de las pruebas de Integración y del Sistema, se tendrá que el sistema funcione como debería, las búsquedas en servicios se realicen como deben, las conexiones entre servicios son adecuadas, etc Pruebas de Usabilidad y Accesibilidad Diseño de Cuestionarios Cuestionario de Evaluación Para evaluar la usabilidad de la aplicación, se realizarán a un conjunto de potenciales usuarios de la aplicación y estos cuestionaros darán como resultado lo fácil que es utilizar la aplicación que se está describiendo. Es por ello que las preguntas que se realizarán serán de varios tipos: por un lado estarán las de carácter general para conocer realmente qué conocimientos posee de base el usuario y por otro están las preguntas que indicarán qué sencillo es utilizar la aplicación o cómo de gratificante es la experiencia de usuario. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 109

110 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Cuestionario para el Responsable de las Pruebas Como también es recomendable generar un cuestionario para la persona que está a cargo de evaluar a los usuarios, también se generará un cuestionario para que el responsable pueda aportar información extra de cada uno de los usuarios y de lo que él ha apreciado durante la sesión de la prueba Actividades de las Pruebas de Usabilidad Preguntas de carácter general Usa un ordenador frecuentemente? 1. Todos los días 2. Varias veces a la semana 3. Ocasionalmente 4. Nunca o casi nunca Qué tipo de actividades realiza con el ordenador? 1. Es parte de mi trabajo o profesión 2. Lo uso básicamente para ocio 3. Solo empleo aplicaciones estilo Office 4. Únicamente leo el correo y navego ocasionalmente Ha usado alguna vez software como el de esta prueba? 1. Sí, he empleado software similar 2. No, aunque si empleo otros programas que me ayudan a realizar tareas similares 3. No, nunca Qué busca principalmente en un programa? 1. Que sea fácil de usar 2. Que sea intuitivo 3. Que sea rápido 4. Que tenga todas las funciones necesarias Qué tipo de programas suele utilizar en el ordenador? 1. Ofimáticos 2. Navegador Web 3. Ambos 4. Otros Está acostumbrado a navegar por internet con el teléfono móvil? 1. Sí 2. No Posee conocimientos de programación? 110 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

111 Diseño del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 1. Sí 2. No Tabla 17. Usabilidad. Cuestionario Preguntas generales Actividades guiadas Las actividades que han de hacer los usuarios son las siguientes: Añadir una nueva universidad a la aplicación Obtener ayuda en la aplicación Conseguir acceder al detalle de una universidad Buscar una operación de un servicio web de una categoría concreta Obtener la URL del servicio web publicador Preguntas Cortas sobre la Aplicación y Observaciones Estas preguntas se deberán de contestar después de hacer las actividades guiadas. Facilidad de Uso Siempre Frecuentemente Ocasionalmente Nunca Sabe dónde está dentro de la aplicación? Existe ayuda para las funciones en caso de que tenga dudas? Le resulta sencillo el uso de la aplicación? Funcionalidad Siempre Frecuentemente Ocasionalmente Nunca Funciona cada tarea como usted espera? El tiempo de respuesta de la aplicación es muy grande? Han sido útiles los mensajes de error? Han sido útiles los indicadores? Ha sido útil la ayuda? Calidad del Interfaz Aspectos gráficos Muy Adecuado Adecuado Poco Adecuado Nada Adecuado El tipo y tamaño de letra es Los iconos e imágenes usados son Los colores empleados son Diseño de la Interfaz Si No A veces Le resulta fácil de usar? El diseño de las pantallas es claro y atractivo? Cree que el programa está bien estructurado? Se ha adaptado el diseño adecuadamente a su dispositivo? Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 111

112 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Diseño del Sistema Observaciones Cualquier comentario del usuario Tabla 18. Usabilidad. Cuestionario Preguntas cortas Cuestionario para el Responsable de las Pruebas Aspecto Observado Notas El usuario comienza a trabajar de forma rápida por las tareas Tiempo en realizar cada tarea Errores leves cometidos Errores graves cometidos El usuario ha preguntado Tabla 19. Usabilidad. Cuestionario Preguntas Responsable Pruebas de Accesibilidad Para conocer el nivel de accesibilidad que tiene la aplicación se utilizarán cuestionario con las recomendaciones de WCAG 2.0. Además se utilizará el validador web Pruebas de Rendimiento Para conocer el rendimiento de la aplicación se visualizarán los estados internos del sistema sobre el que se ejecuta. Las mediciones que se harán será conocer la cantidad de memoria RAM consumida por la aplicación, el porcentaje de CPU, consumo de datos de la aplicación, velocidades de respuesta de la página web y velocidades de respuesta en el consumo de los servicios web. 112 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

113 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 7. Implementación Sistema del 7.1 Estándares y Normas Seguidos HMTL 5 Si bien no es un estándar oficial, sí que está en proceso de estandarización y por eso se ha optado por generar el código de las JSPs con este lenguaje de marcado. De esta forma, la aplicación web está escrita con esta tecnología CSS 3 Los estilos de la página web están basados en CSS y LESS. Además se apoya con JQuery y bootstrap para aumentar la responsividad del diseño Java Conventions A la hora de codificar la aplicación se ha decidido aplicar las reglas definidas en las Java Conventions para la escritura y formateo del código desarrollado JPA (JSR-317) Se ha decidido utilizar esta especificación en lugar de utilizar la implementación Hibernate. De esta forma se consigue liberar la dependencia y poder modificar el proveedor de la implementación sin afectar al diseño de la aplicación Dependency Injection For Java (JSR-330) Igual que en el apartado anterior, para la inyección de dependencias se ha utilizado la especificación mediante De esta forma aunque sean menos representativos como por ejemplo lo son los estereotipos que proporciona Spring, si se da el caso de que hay que modificar el proveedor de CDI no habrá problemas JAX-WS (JSR-224) Para la especificación de los servicios web se han utilizado estas anotaciones proporcionadas por la especificación. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 113

114 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema MVC (Model-View-Controller) Para montar la estructura de la aplicación web se decidió utilizar este patrón arquitectónico que es el más utilizado debido a la separación de responsabilidades entre las capas y ser la que proporciona la tecnología utilizada para el controlador web (Spring-MVC). 114 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

115 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 7.2 Lenguajes de Programación El lenguaje de programación utilizado ha sido Java en su versión JEE 7 para aplicaciones empresariales. Debido a que Java suele mantener la compatibilidad con versiones anteriores es posible utilizar JEE 6. Por debajo de esta última versión no se garantiza su correcto funcionamiento. Otro de los lenguajes utilizados en la programación ha sido JavaScript y concretamente con su componente JQuery para realizar llamadas AJAX al servidor sin necesidad de refrescar la página. La versión de JQuery utilizada es minificada. Para ver todas las versiones de los componentes utilizados se recomienda ver la sección de anexos donde se incluirán los ficheros POM.xml de cada uno de los proyectos utilizados y que definen tanto los componentes como sus versiones. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 115

116 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema 7.3 Herramientas y Programas Usados para el Desarrollo Spring Tool Suite Desarrollado en Java por Pivotal, es un entorno de desarrollo orientado a desarrollar aplicaciones con Java y concretamente con los componentes SpringFramework, Maven, SVN, JPA Está desarrollado como un plug-in de Eclipse y enriquece enormemente la experiencia del desarrollador teniendo un control máximo del proyecto SVN Subversion es un sistema para el control del versionado. Es decir, permite llevar un track del histórico de versiones de un proyecto siendo muy sencillo poder volver a una versión anterior en caso de ser necesario y de compartir el código del proyecto pues está instalado en un servidor Maven Es una herramienta de despliegue automático de aplicaciones Java. Se puede ver como una remodelación del antiguo Apache Ant, que fue tan exitoso en la generación de ficheros WAR para su posible despliegue en entornos JEE. La mayor mejora que supone Maven es que se encarga de la gestión de las dependencias en forma de bibliotecas que puedan tener los proyectos, él las instala de forma automática, además de tener un amplio abanico de plantillas para crear proyectos sin comenzar de cero. Para la gestión de las bibliotecas, éstas han de ser incluidas en forma de dependencias dentro de un fichero XML denominado pom.xml que además permitirá la gestión completa del proyecto, con qué plugins compilar, metadatos del proyecto, gestión del empaquetamiento, etc. Ligada a esta nueva filosofía de las dependencias, también acoge la nueva tendencia del multiproyecto por la cual se aconseja tener un proyecto por cada capa (Tier) de la aplicación. Por último, otro de sus grandes ventajas es su perfecta integración como plugin de Eclipse para la gestión de los proyectos Microsoft Project Herramienta de Micrososft para la gestión de proyectos. Con él se ha diseñado el diagrama de Gantt y se ha llevado a cabo la planificación del proyecto. 116 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

117 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Microsoft Office Suite ofimática que comprende programas como Microsoft Word para el procesado de textos, Microsoft Excel para la realización de hojas de cálculo y Microsoft PowerPoint para la realización de presentaciones Enterprise Architect Herramienta CASE para la realización de los diagramas necesarios para documentar el proyecto. Fundamental en el proceso de análisis y diseño ya que con él se desarrolla la arquitectura, diagramas de clases, de interacción, de actividad, etc Windows 7 Sistema operativo de catacter propietario desarrollado por Microsoft sobre el cual se realiza la documentación y análisis del proyecto. Para el ejemplo también será el sistema operativo sobre el que se ejecutará la aplicación. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 117

118 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema 7.4 Creación del Sistema Problemas Encontrados A la hora de realizar el desarrollo de este proyecto, el primer enfoque que se le dio fue que se podía resolver mediante aplicando tecnologías relacionados con Web Semántica. La convicción que se tenía en un principio fue que se podía realizar una Ontología lo suficientemente potente como para que pudiera representar el modelo de referencia que se plantea y que luego tanto con servicios web semánticos como mediante consultas SPARQL se podían aplicar razonamientos a la Ontología para poder realizar los emparejamientos de campos entre universidades. El problema llegó desde que estaba construida la Ontología, cuando no se consiguió hacer un modelo lo suficientemente rico semánticamente bien por no tener unos conocimientos avanzados de la materia o porque simplemente no se estaba utilizando la tecnología en la forma en la que se debería de utilizar. Tras desecharse este modelo se comenzó a plantear el nuevo sistema mediante NoSQL y String Metrics. Otro de los problemas que ocurrieron a lo largo del desarrollo del sistema fue cómo conseguir llamar a los diferentes servicios web para obtener información o bien para realizar la introspección de las clases y métodos incluidos en el servicio web sin generar todo el stub de clases que se generan cuando se desarrolla un cliente para un determinado servicio web. Esto finalmente se resolvió mediante la inclusión de Apache CXF para la instanciación dinámica de servicios web, que si bien no es trivial, sí facilita el trabajo de forma notoria. 118 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

119 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Descripción Detallada de las Clases Buscador @SessionAttributes(value="beca") public class BecaFormController extends java.lang.object Controlador del formulario del modelo Beca. Atenderá las peticiones que sean de su responsabilidad mediante las direcciones filtradas en los métodos. Author: Fields: Danielmf private IMatchBecaView private BecaDirectorForm private static Logger logger private MatcherManagerService becaview builder matcherservice private WebServiceManagerService webserviceservice public java.lang.string setupform(org.springframework.ui.model m odel, javax.servlet.http.httpservletrequest request) Prepara el formulario de la Beca rellenando sus campos previamente con el modelo Parameters: Returns: model - a rellenar previa ejecución del formulario request - vista a devolver el control Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 119

120 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del public java.lang.string es.uniovi.innova.eadministracion.tramites.swu.model.wrapper.beca Wrapper beca, org.springframework.validation.bindingresult result, org.springframework.web.bind.support.sessionstatus status, javax.servlet.http.httpservletrequest request, org.springframework.ui.model model) Recoge la acción procesada al enviar el formulario del modelo Beca Parameters: beca - Modelo que será mapeado por el formulario result - Resultado del mapeo del formulario status - estado de la sesión, en caso de que exista algo que no ocurra como debiera request - model - Model para realizar el binding Returns: vista donde se devolverá el control public class OperationsFormController extends java.lang.object Controlador de gestión del formulario de Operaciones de los servicios web Author: Fields: danielmf private static Logger logger private IMatchOperationsView matchoperationsview 120 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

121 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo public java.lang.string submitform(javax.servlet.http.httpservle trequest java.lang.string VC, java.lang.string java.lang.string alumno) Recoge la acción procesada al enviar el formulario del modelo OperationWrapper Parameters: request - modelo - clase que emparejará con el modelo de referencia VC - operacion para las becas del vicerrectorado curso - operacion para las becas del curso alumno - operacion para las becas por alumno Returns: @SessionAttributes(value="solicitante") public class SolicitanteFormController extends java.lang.object Controlador de gestión del formulario de Solicitante Author: Fields: danielmf privatebecadirectorform private static Logger logger private MatcherManagerService private ISaveProcessView builder matcherservice saveprocessview private WebServiceManagerService webserviceservice Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 121

122 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema public java.lang.string setupform(org.springframework.ui.model m odel, javax.servlet.http.httpservletrequest request) Preparación del formulario del modelo para inyectar campos previamente Parameters: model - request - public java.lang.string tante") es.uniovi.innova.eadministracion.tramites.swu.model.wrapper.soli citantewrapper solicitante, org.springframework.validation.bindingresult result, org.springframework.web.bind.support.sessionstatus status, javax.servlet.http.httpservletrequest request, org.springframework.ui.model model) Parameters: solicitante - clase que se mapeará en el formulario result - resultado del mapeo status - estado para obtener los errores request - model - Returns: public class UniversityController extends java.lang.object Controlador de la University Author: danielmf 122 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

123 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Fields: private ICheckOperationsView private IDetailView private IDetailView private IMatchBecaView private ISaveProcessView detailview detailviewfull checkoperationsview matchbecaview saveprocessview public java.lang.string java.lang.long id, org.springframework.ui.model model) Filtra las peticiones para el detalle de una universidad en caso de que se procese la petición mediante JavaScript Parameters: id - de la University model - para devolver el resultado public java.lang.string java.lang.long id, org.springframework.ui.model model) Filtra las peticiones para el detalle de una universidad en caso de que la petición se ejecute sin JavaScript Parameters: id - de la University model - para devolver el resultado Returns: @SessionAttributes(value="university") public class UniversityFormController extends java.lang.object Controlador del formulario del modelo University Author: danielmf Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 123

124 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema Fields: private ICheckOperationsView private static Logger logger checkoperationsview public java.lang.string setupform(org.springframework.ui.model m odel) Prepara el formulario inyectando los parámetros necesarios para rellenar los campos Parameters: model - public java.lang.string sity") es.uniovi.innova.eadministracion.tramites.swu.model.university u niversity, org.springframework.validation.bindingresult result, org.springframework.web.bind.support.sessionstatus status, javax.servlet.http.httpservletrequest request, org.springframework.ui.model model) Recoge los datos del fomulario y los valida para continuar con el registro del formulario Parameters: university - objeto University rellena del formulario result - para devolver mensajes a la vista status - con el estado de la petición request - model - Returns: vista a la que quiere devolversele el control public class HomeController extends java.lang.object Controlador de la página inicial (Buscador) Author: danielmf 124 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

125 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Fields: private static Logger logger public java.lang.string form() Mapea las peticiones para el formulario de registro de los Servicios Web en la url /form method=get) public java.lang.string home() Filtra el tráfico inicial a la home public java.lang.string info() Mapea las peticiones para la página de información en la url /info public java.lang.string retriever() Mapea las peticiones para la información del Recolector de Becas en la url /retriever Returns: public class SearchEngineController extends java.lang.object Controlador del componente Buscador. Atenderà las peticiones que sean de su responsabilidad mediante las direcciones filtradas en los mã todos. Author: Fields: danielmf private static Logger logger private ISearchView searchview private ISearchViewNoScript searchviewnoscript Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 125

126 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema method=post) public java.lang.string ) java.lang.string search, org.springframework.ui.model model) Filtra las peticiones del buscador que atiendan a la url /searchmin Parameters: search - parametro que llega del formulario model - modelo para devolver la respuesta method=post) public java.lang.string ch_text") java.lang.string search, org.springframework.ui.model model) Filtra las peticiones del buscador con el JavaScript desactivado en la url /search Parameters: search - parámetro que llega del formulario model - modelo para devolver la respuesta Returns: public class SearchView extends java.lang.object implements ISearchView Resuelve la vista del buscador mediante la implementación del patrón Command Author: Fields: Danielmf private SearchEngineService searchengine 126 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

127 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Operations: public java.lang.string execute(java.lang.string search, org.springframework.ui.model model) Specified by: execute in interface ISearchView public class CheckOperationsView extends java.lang.object implements ICheckOperationsView Clase que implementa un patrón Command para resolver la vista de las operaciones Author: Fields: danielmf private static Logger logger private UniversityValidator validator privatewebservicemanagerservice webservicemanager Operations: public java.lang.string execute(javax.servlet.http.httpservletre quest request, es.uniovi.innova.eadministracion.tramites.swu.model.university u niversity, org.springframework.ui.model model, org.springframework.validation.bindingresult result) Specified by: execute in interface ICheckOperationsView Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 127

128 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema public class DetailView extends java.lang.object implements IDetailView Resuelve la vista del detalle de la University mediante un Command Author: Fields: danielmf private static Logger logger privateuniversitymanagerservice universityservice Operations: public java.lang.string execute(java.lang.long id, org.springframework.ui.model model) Specified by: execute in interface IDetailView public class MatchBecaView extends java.lang.object implements IMatchBecaView Resuelve la vista para el matcheador de la beca mediante un Command Author: Fields: danielmf privatematchermanagerservice private BecaWrapperValidator matcherservice validator private WebServiceManagerService webserviceservice 128 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

129 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Operations: public java.lang.string execute(javax.servlet.http.httpservletre quest request, es.uniovi.innova.eadministracion.tramites.swu.model.wrapper.beca Wrapper beca, org.springframework.ui.model model, org.springframework.validation.bindingresult result) Specified by: execute in interface IMatchBecaView private java.util.map<java.lang.string,java.lang.string> putattr ibutes(es.uniovi.innova.eadministracion.tramites.swu.model.wrapp er.becawrapper beca) Se encarga de meter en la session un Map con los atributos de la Beca Parameters: beca - recogida del formulario Returns: Map con el campo y el emparejamiento recogido en el formulario public class MatchOperationsView extends java.lang.object implements IMatchOperationsView Resuelve la vista para el emparejador de las operaciones Author: Fields: danielmf private BecaDirectorForm builder private static Logger logger private MatcherManagerService matcherservice private OperationsValidator operationsvalidator private WebServiceManagerService webserviceservice Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 129

130 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema Operations: public java.lang.string execute(javax.servlet.http.httpservletre quest request, java.lang.string modelo, java.lang.string VC, java.lang.string curso, java.lang.string alumno) Specified by: execute in interface IMatchOperationsView private java.lang.string setoperations(java.lang.string VC, java.lang.string curso, java.lang.string alumno, java.util.map<java.lang.string,java.lang.string> operations) Comprueba y almacena en un Map las operaciones seleccionadas en el formulario Parameters: VC - operación que relaciona con el Vicerrectorado curso - operación que relacion con el curso alumno - operación que relaciona con el alumno operations - mapa donde se almacenan las operaciones Returns: el nombre del paquete para recoger el modelo public class SaveProcessView extends java.lang.object implements ISaveProcessView Resuelve la vista para el guardado del proceso de creación de una nueva universidad Author: Fields: danielmf private MatcherManagerService private UniversityManagerService matcherservice universityservice private SolicitanteWrapperValidator validator 130 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

131 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo public java.lang.string execute(javax.servlet.http.httpservletre quest request, es.uniovi.innova.eadministracion.tramites.swu.model.wrapper.soli citantewrapper solicitante, org.springframework.ui.model model, org.springframework.validation.bindingresult result) Specified by: execute in interface ISaveProcessView private boolean joinable(java.lang.string key) Comprueba si un match es compuesto Parameters: key - match Returns: si es compuesto o no private java.util.map<java.lang.string,java.lang.string> putattr ibutes(es.uniovi.innova.eadministracion.tramites.swu.model.wrapp er.solicitantewrapper solicitante) Crea un Map con los atributos del Solicitante Parameters: solicitante - recogido en el formulario Returns: el mapa con los atributos tras el match private void setbeca(es.uniovi.innova.eadministracion.tramites.s wu.model.university u, java.lang.string modelo, java.util.map<java.lang.string,java.lang.string> fields_beca) Guarda una beca recogida en el formulario Parameters: university - modelo - fields_beca - Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 131

132 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema private void setoperations(es.uniovi.innova.eadministracion.tram ites.swu.model.university u, java.util.map<java.lang.string,java.lang.string> operations) Guarda las operaciones recogidas previamente en el formulario Parameters: university - operations - Map con las operaciones recogidas private void setsolicitante(java.util.map<java.lang.string,java. lang.string> fields, es.uniovi.innova.eadministracion.tramites.swu.model.university u, java.lang.string modelo) Guarda un Solicitante recogido previamente en el formulario Parameters: fields - map con los campos del solicitante university - modelo - private java.lang.string[] split(java.lang.string key) Obtiene los campos de un match compuesto Parameters: key - match Returns: un Array con los matches Modelo Beca public class Beca extends java.lang.object Modelo que representa una Beca Author: danielmf 132 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

133 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Fields: private String asunto_convocatoria private Double cuantia_otorgada private String curso_academico private String destino private String estado_solicitud private String nombre_procedimiento_convocatoria private Solicitante solicitante Solicitante public class Solicitante extends java.lang.object Author: Fields: danielmf private String apellido1_solicitante private String apellido2_solicitante private String documento_identificativo private String estudios private Integer fecha_nacimiento private String nacionalidad private String nombre_solicitante private String sexo private String tipo_documento_identificativo public class University extends java.lang.object JavaBean que modela los datos recopilados de una Universidad Author: danielmf Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 133

134 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema Fields: private Long id private Set<ModelWrapper> modelswrapper private String name private Set<OperationWrapper> operationswrapper private String personincharge private String wsdl Vicerrectorado public class Vicerrectorado extends java.lang.object Modelo que representa un Vicerrectorado Author: Fields: danielmf private Long id private String nombre private String responsible Constants public class Constants extends java.lang.object Clase que define constantes que se utilizan a lo largo de la aplicación Author: Danielmf 134 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

135 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Fields: static String[] BECA static String static String static String static String static String INDEX MATCH static String[] MODEL static String static String MATCH_OPERATION_ALUMNO MATCH_OPERATION_CURSO MATCH_OPERATION_VICERRECTORADO MODELCLASS NOSQL static String[] OPS static String[] SOLICITANTE BecaWrapper public class BecaWrapper extends java.lang.object Envoltorio para utilizar Beca sin necesidad de utilizar sus agregados Author: Fields: danielmf private String asunto_convocatoria private String cuantia_otorgada private String curso_academico private String destino private String estado_solicitud private String nombre_procedimiento_convocatoria public class ModelWrapper extends java.lang.object Envoltorio para recoger los campos entre el modelo genérico y una University Author: danielmf Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 135

136 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema Fields: private String clazz private String concrete private String join private String match private String modelclazz private University university public class OperationWrapper extends java.lang.object Modela una relación entre las operaciones de un wsdl y una University Author: Fields: danielmf private String match private String op private University university OperationWrapperDocument public class OperationWrapperDocument extends java.lang.object Envoltorio para las Operaciones de los servicios web Author: Fields: danielmf private String id private String match private String op private Integer university private String university_name 136 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

137 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo ParamsWrapper public class ParamsWrapper extends java.lang.object Envoltorio que almacena el tipo de argumentos que recibe un mã todo y el tipo del retorno Author: Fields: danielmf private List<java.lang.String> fields private String return_ SolicitanteWrapper public class SolicitanteWrapper extends java.lang.object Envoltorio para un Solicitante Author: Fields: Danielmf private String apellido1_solicitante private String apellido2_solicitante private String documento_identificativo private String estudios private String fecha_nacimiento private String nacionalidad private String nombre_solicitante private String sexo private String tipo_documento_identificativo HashDataService public interface HashDataService Fachada que define las operaciones de la capa de persistencia relativa a la base de datos NoSQL. Author: Danielmf Operations: void init() Carga el modelo inicial (solo se ejecuta una vez) Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 137

138 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema ModelWrapper querymodel(java.lang.string field, java.lang.string modelclazz) Busca matches previos relativos a ModelWrapper Parameters: field - modelclazz - Returns: null o el match OperationWrapper queryops(operationwrapper operationwrapper) Busca matches previos relativos a OperationWrapper Parameters: operationwrapper - Returns: null o el match void save(modelwrapper modelwrapper) Guarda en la base de datos NoSQL un match con el modelo Parameters: modelwrapper - void save(operationwrapper operationwrapper) Guarda en la base de datos NoSQL un match con una operaciã³n Parameters: operationwrapper public interface ModelWrapperDataService extends org.springframework.data.repository.crudrepository<modelwrapper, ModelWrapperKey> Capa de persistencia que encapsula las operaciones de ModelWrapper mediante CrudRepository Author: Danielmf 138 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

139 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo java.util.list<modelwrapper> findbyuniversityclazz(university un iversity, java.lang.string clazz) public interface OperationsWrapperDataService extends org.springframework.data.repository.crudrepository<operationwrap per,operationwrapperkey> Capa de persistencia que encapsula las operaciones de OperationWrapper mediante CrudRepository Author: danielmf Operations: java.util.list<operationwrapper> findbymatch(java.lang.string ma java.util.list<operationwrapper> findbymatchanduniversityid(java.lang.string mode, java.lang.long id) java.util.list<operationwrapper> findbyuniversity(university uni versity) public interface UniversityDataService extends org.springframework.data.repository.crudrepository<university,ja va.lang.long> Inferface que implementa CrudRepository para gestionar las CRUD con la base de datos del modelo University Author: danielmf Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 139

140 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema Operations: University findbyname(java.lang.string name) Busca universidades por nombre Parameters: name - para identificar la Universidad Returns: University findbywsdl(java.lang.string wsdl) Busca universidades por el WSDL Parameters: wsdl - url donde se alojan los servicios Returns: public interface OperationsWrapperDocumentRepository extends org.springframework.data.solr.repository.solrcrudrepository<oper ationwrapperdocument,java.lang.string> Interface que resuelve las operaciones de Spring Data Solr para la funcionalidad del buscador. Author: Operations: OR match:?0 OR university_name:?0") java.util.list<operationwrapperdocument> findbymatchorop(java.la ng.string keyword) Helper public class Helper extends java.lang.object Helper para cargar las configuraciones y otros mã todos de utilidad Author: danielmf 140 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

141 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Operations: Public static java.lang.string getclassname(java.lang.string classnamew ithpackage) Obtiene el nombre de una clase sin el paquete Parameters: classnamewithpackage - Returns: public static java.lang.string getproperty(java.lang.string CONF_FILE, java.lang.string key) Obtiene una propiedad de un fichero de propiedades bajo una clave Parameters: CONF_FILE - key - Returns: public static java.lang.string retrievecompletename(java.lang.string cl azzname) Obtiene el paquete base de una clase bajo un servicio web. Parameters: clazzname - Returns: Publisher ScholarshipManager public class ScholarshipManager extends java.lang.object Ofrece un servicio web para poder obtener becas de forma unificada Author: danielmf Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 141

142 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema Operations: Public List<Beca> getbecasbyparam(java.lang.object param, java.lang.string category, java.lang.string university) Obtiene las becas en función de unos parametros Parameters: param - category - university - Returns: Listado de becas Recolector public class ShowBecasByAlumno extends java.lang.object implements Executable Presenta las becas de la categoría de Alumno Author: Fields: danielmf private String dni private static Logger logger private String universidad private WebServiceManagerService webserviceservice Operations: public void execute() Description copied from interface: Executable Método para asegurar que todas las clases de la capa de presentación pertenecen al Command Specified by: execute in interface Executable 142 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

143 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo public class ShowBecasByCurso extends java.lang.object implements Executable Presenta las becas generadas por la categoría de curso Author: Fields: danielmf private int curso private static Logger logger private String universidad private WebServiceManagerService webserviceservice Operations: public void execute() Description copied from interface: Executable Método para asegurar que todas las clases de la capa de presentación pertenecen al Command Specified by: execute in interface Executable public class ShowBecasByVicerrectorado extends java.lang.object implements Executable Presenta las becas generadas por la categoría Vicerrectorado. Author: danielmf Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 143

144 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema Fields: private static Logger logger private String universidad private Vicerrectorado vicerrectorado private WebServiceManagerService webserviceservice Operations: public void execute() Description copied from interface: Executable Método para asegurar que todas las clases de la capa de presentación pertenecen al Command Specified by: execute in interface Executable Registrador public class CheckStatus extends java.lang.object implements Executable Clase que comprueba la postcondición de la aplicación para no dejar datos inconsistentes Author: Fields: danielmf private MatcherManagerService matcherservice private University university private UniversityManagerService universityservice 144 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

145 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Operations: public void execute() Description copied from interface: Executable Método para asegurar que todas las clases de la capa de presentación pertenecen al Command Specified by: execute in interface Executable public class Builder extends java.lang.object implements Executable Construye los resultados después de hacerse los matches Author: Fields: danielmf private static Logger logger private MatcherManagerService matcherservice private Map< String, Object> matches Operations: public void execute() Description copied from interface: Executable Método para asegurar que todas las clases de la capa de presentación pertenecen al Command Specified by: execute in interface Executable public class MatchFields extends java.lang.object implements Executable Desencadena el matching de campos con las técnicas de String Metrics Author: danielmf Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 145

146 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema Fields: private String clazz private String field private static Logger logger private MatcherManagerService matcherservice private Map< String, Object> matches private String modelclazz private University university Operations: public void execute() Description copied from interface: Executable Método para asegurar que todas las clases de la capa de presentación pertenecen al Command Specified by: execute in interface Executable public class MatchOtherFields extends java.lang.object implements Executable Termina de mapear los campos que no se emparejaron mediante StringMetrics y la NoSQL Author: Fields: danielmf private String clazz private String field private Map< String, Object> matches private String modelclazz private University university 146 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

147 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Operations: public void execute() Description copied from interface: Executable Método para asegurar que todas las clases de la capa de presentación pertenecen al Command Specified by: execute in interface Executable public class CreateUniversity extends java.lang.object implements Executable Crea una universidad en la base de datos Author: Fields: danielmf private University university private UniversityManagerService universityservice private WebServiceManagerService webserviceservice Operations: public void execute() Description copied from interface: Executable Método para asegurar que todas las clases de la capa de presentación pertenecen al Command Specified by: execute in interface Executable Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 147

148 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema public class ListFields extends java.lang.object implements Executable Lista los campos de una clase mediante introspección Author: Fields: danielmf private String clazzname private List< String> fields private WebServiceManagerService webserviceservice private String wsdl Operations: public void execute() Description copied from interface: Executable Método para asegurar que todas las clases de la capa de presentación pertenecen al Command Specified by: execute in interface Executable public class ListOperations extends java.lang.object implements Executable Obtiene las operaciones de un wsdl y descarta las no interesantes para la aplicaciã³n Author: Danielmf 148 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

149 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Fields: private String choice private static Logger logger private MatcherManagerService matcherservice private String modelo private List<OperationWrapper> operations private List< String> ops private University university private WebServiceManagerService webserviceservice Operations: public void execute() Description copied from interface: Executable Método para asegurar que todas las clases de la capa de presentación pertenecen al Command Specified by: execute in interface Executable private void lasttry(es.uniovi.innova.eadministracion.tramites.s wu.model.wrapper.operationwrapper o) throws java.io.ioexception Throws: java.io.ioexception private java.util.list<java.lang.integer> showops(java.util.list <java.lang.string> ops)throws java.io.ioexception Throws: java.io.ioexception Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 149

150 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema Service BecaBuilder public abstract class BecaBuilder extends java.lang.object Constructor (Builder) en la jerarquía Builder, define las operaciones abstractas de construcción que implementarán los concretos. Author: danielmf BecaDirector public class BecaDirector extends java.lang.object Director de la jerarquía Builder en la construción de la Beca Author: Fields: danielmf private static BecaBuilder private static Logger logger builder Operations: public static es.uniovi.innova.eadministracion.tramites.swu.model.beca build(java.util.list<es.uniovi.innova.eadministracion.tramites.s wu.model.wrapper.modelwrapper> models, java.lang.object beca) Dirige las operaciones de construcción por partes Parameters: models - información en crudo Returns: Beca construida por partes private static java.lang.object getter(java.lang.object beca, es.uniovi.innova.eadministracion.tramites.swu.model.wrapper.mode lwrapper mw) Obtiene matches de dentro del objeto Parameters: beca - sacada de la invocación del SW mw - para hacer el emparejamiento Returns: el valor de la beca del emparejamiento 150 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

151 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo public class BecaDirectorForm extends java.lang.object Builder para construir el modelo del formulario Author: Fields: Danielmf private ConcreteFormBecaBuilder builder private static Logger logger private MatcherManagerService matchermanager Operations: public es.uniovi.innova.eadministracion.tramites.swu.model.wrapp er.becawrapper build(java.util.list<java.lang.string> fields) Dirige las operaciones de construcción por partes Parameters: fields - información en crudo Returns: Beca construida por partes public es.uniovi.innova.eadministracion.tramites.swu.model.wrapp er.solicitantewrapper buildsol(java.util.list<java.lang.string> fields) ConcreteBecaBuilder public class ConcreteBecaBuilder extends BecaBuilder Author: Fields: Danielmf private Beca beca private Solicitante solicitante ConcreteFormBecaBuilder public class ConcreteFormBecaBuilder extends BecaBuilder Author: Danielmf Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 151

152 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema Fields: private Beca beca private Solicitante solicitante MatcherManagerService public interface MatcherManagerService Fachada que define las operaciones de los matchers NoSQL y StringMetrics Author: danielmf Operations: void init() Inicializa la base de datos con los datos necesarios java.lang.string match(java.lang.string field,java.lang.string m odelclazz) Busca el campo más factible de casar con el modelo externo Parameters: field - campo externo Returns: campo del modelo propio con el que casa es.uniovi.innova.eadministracion.tramites.swu.model.wrapper.mode lwrapper save(es.uniovi.innova.eadministracion.tramites.swu.mode l.wrapper.modelwrapper modelwrapper) Guarda en la base de datos la relación para un campo Parameters: modelwrapper - Returns: modelwrapper con id es.uniovi.innova.eadministracion.tramites.swu.model.wrapper.oper ationwrapper save(es.uniovi.innova.eadministracion.tramites.swu. model.wrapper.operationwrapper operationwrapper) Guarda la Operacion en la base de datos Parameters: operationwrapper - Returns: operationwrapper con id 152 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

153 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo boolean checkstatus(es.uniovi.innova.eadministracion.tramites.sw u.model.university university) Comprueba si la base de datos tiene operaciones relativas a una University para temas de consistencia Parameters: universidad - Returns: void delete(es.uniovi.innova.eadministracion.tramites.swu.model. wrapper.modelwrapper m) Borra un match entre campos Parameters: m - void delete(es.uniovi.innova.eadministracion.tramites.swu.model. wrapper.operationwrapper op) Borra un match entre operaciones Parameters: op OperationsWrapperService public interface OperationsWrapperService Operaciones necesarias para Spring Data Solr y que alimentan al buscador Author: danielmf Operations: void addtoindex(es.uniovi.innova.eadministracion.tramites.swu.mo del.wrapper.operationwrapper operationwrapper) Añade al indice una operación Parameters: operationwrapper - void deletefromindex(es.uniovi.innova.eadministracion.tramites.s wu.model.wrapper.operationwrapper operationwrapper) Borra del índice una operación Parameters: operationwrapper - Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 153

154 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema java.util.list<es.uniovi.innova.eadministracion.tramites.swu.mod el.wrapper.operationwrapperdocument> search(java.lang.string key word) Realiza la busqueda en función de una palabra clave Parameters: keyword - Returns: SearchEngineService public interface SearchEngineService Fachada que define las operaciones del Servicio de Buscador Author: danielmf Operations: java.util.list<es.uniovi.innova.eadministracion.tramites.swu.mod el.wrapper.operationwrapper> searchoperations(java.lang.string s earch) Busca operaciones en la base de conocimiento y en la base de datos Parameters: search - servicio a buscar Returns: lista de operaciones y de operaciones relacionadas es.uniovi.innova.eadministracion.tramites.swu.model.university s earchuniversities(java.lang.string search) Busca universidades en la base de datos Parameters: search - universidad a buscar Returns: lista de universidades relacionadas UniversityManagerService public interface UniversityManagerService Fachada que define las operaciones del modelo de la University Author: danielmf 154 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

155 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Operations: es.uniovi.innova.eadministracion.tramites.swu.model.university s ave(es.uniovi.innova.eadministracion.tramites.swu.model.universi ty university) Almacena una University en la Base de Datos Parameters: university - void remove(es.uniovi.innova.eadministracion.tramites.swu.model. University university) Borra una University de la Base de Datos Parameters: university - es.uniovi.innova.eadministracion.tramites.swu.model.university f induniversity(java.lang.long id) Obtiene una University por ID Parameters: id - Returns: es.uniovi.innova.eadministracion.tramites.swu.model.university f induniversitybywsdl(java.lang.string wsdl) Obtiene una University a partir de un wsdl Parameters: wsdl - Returns: es.uniovi.innova.eadministracion.tramites.swu.model.university f induniversitybyname(java.lang.string name) Obtiene una University a partir de un nombre Parameters: name - Returns: WebServiceManagerService public interface WebServiceManagerService Fachada que define las operaciones relativas a interoperabilidad con Servicios Web Author: danielmf Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 155

156 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Implementación del Sistema Operations: java.util.list<java.lang.string> getoperations(java.lang.string wsdl) Obtiene las operaciones de un Servicio Web Parameters: wsdl - Returns: Listado de operaciones java.lang.object connect(java.lang.string wsdl, java.lang.string method, java.lang.object[] args, java.lang.classloader classloader) throws java.lang.exception Realiza una inovcación genérica a un método definido en un WSDL. Parameters: wsdl - method - args - array de objects classloader - Returns: Throws: java.lang.exception es.uniovi.innova.eadministracion.tramites.swu.model.wrapper.para mswrapper getoperationios(java.lang.string wsdl, java.lang.string clazzname) throws java.lang.classnotfoundexception Obtiene los parámetros de una clase (argumentos de entrada de un método del WSDL y el retorno). Parameters: wsdl - clazzname - completo con el paquete Returns: ParamsWrapper envoltorio con los parámetros Throws: java.lang.classnotfoundexception 156 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

157 Implementación del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo java.util.list<java.lang.string> getclassfields(java.lang.string clazzname, java.lang.string wsdl) Obtiene los atributos de una clase dada Parameters: clazzname - Returns: Listado de strings con los atributos java.util.list<es.uniovi.innova.eadministracion.tramites.swu.mod el.beca> getbecasbyparam(java.lang.object param, java.lang.string mode) Invoca a los métodos de los Servicios Web recopilados en el recolector según el tipo de método Parameters: param - Parámetro que se pasa al método del Servicio Web mode - tipo de método Returns: Listado de Beca recopiladas java.util.list<es.uniovi.innova.eadministracion.tramites.swu.mod el.beca> getbecasbyparam(java.lang.object param,java.lang.string mode,java.lang.string university) Invoca a lso métodos de los Servicios Web recopilados en el recolector según el tipo de método y la universidad Parameters: param - Parámetro que se pasa al método del Servicio Web mode - Tipo de método university - Nombre de la universidad Returns: Listado de Beca recopiladas GenericException public class GenericException extends java.lang.runtimeexception Excepción genérica para recogerla en las vistas del sitio web y mostrar mensajes personalizados de error Author: danielmf Fields: protected String msg Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 157

158 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Desarrollo de las Pruebas Capítulo 8. Desarrollo de las Pruebas 8.1 Pruebas Unitarias Si se quiere comprobar esto, se puede realizar ejecutando las pruebas con la herramienta JUnit y para hacerlo de forma más sencilla, se ha realizado una Suite que facilita el trabajo de comprobación de los tests. Ilustración 73. Test. Resultados del procesamiento de Tests 158 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

159 Desarrollo de las Pruebas Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 8.2 Pruebas de Integración y del Sistema Para comprobar las pruebas de integración y de sistema, en este proyecto se ha comprobado que todo funcionara de forma correcta. Las pruebas unitarias son ya una prueba de integración y del sistema puesto que en ellas se interconectan todos los componentes y en mayor o menor medida las pruebas utilizan varios componentes que están interconectados entre sí. Además se ha comprobado por otra parte, el gasto en memoria que supone tener el sistema corriendo dentro de un solo ordenador. RAM: 1.2 GB MB MB MB = 2.2 GB aprox. Como se puede comprobar la aplicación es bastante pesada, aunque si se tiene en cuenta que los 1.2 GB del inicio son de SpringToolSuite y del Apache Tomcat que alberga las aplicaciones del buscador y del publicador con los servicios web disponibles. Los 570 MB son destinados a un segundo servidor de aplicaciones Jetty con la aplicación de Apache Solr y los 223 MB de la base de datos NoSQL Apache Cassandra. Finalmente los 158 MB restantes son de la aplicación ejecutándose. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 159

160 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Desarrollo de las Pruebas 8.3 Pruebas de Usabilidad y Accesibilidad Pruebas de Usabilidad Debido al perfil de la aplicación, no va a ser utilizada por cualquier usuario. El usuario que utilice esta aplicación será responsable del registro de la Universidad a la que representa con lo que se da por supuesto que tendrá unos conocimientos informáticos avanzados Usuario 1 El usuario 1 es un ingeniero informático superior, con amplios conocimientos informáticos y que tiene a cargo un equipo de desarrolladores en el servicio de informática de su Universidad. Además está acostumbrado a trabajar con arquitecturas orientadas a servicio con lo que sus conocimientos en servicios web son amplios. Usa un ordenador frecuentemente? Todos los días Qué tipo de actividades realiza con el ordenador? Es parte de mi trabajo o profesión Ha usado alguna vez software como el de esta prueba? No, nunca Qué busca principalmente en un programa? Que tenga todas las funciones necesarias Qué tipo de programas suele utilizar en el ordenador? Otros Está acostumbrado a navegar por internet con el teléfono móvil? Sí Posee conocimientos de programación? 1. Sí Facilidad de Uso Siempre Frecuentemente Ocasionalmente Nunca Sabe dónde está dentro de la X aplicación? Existe ayuda para las funciones X en caso de que tenga dudas? Le resulta sencillo el uso de la aplicación? X 160 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

161 Desarrollo de las Pruebas Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Funcionalidad Siempre Frecuentemente Ocasionalmente Nunca Funciona cada tarea como usted X espera? El tiempo de respuesta de la X aplicación es muy grande? Han sido útiles los mensajes de X error? Han sido útiles los indicadores? X Ha sido útil la ayuda? X Calidad del Interfaz Aspectos gráficos Muy Poco Nada Adecuado Adecuado Adecuado Adecuado El tipo y tamaño de letra es X Los iconos e imágenes usados son X Los colores empleados son X Diseño de la Interfaz Si No A veces Le resulta fácil de usar? X El diseño de las pantallas es claro y X atractivo? Cree que el programa está bien X estructurado? Se ha adaptado el diseño adecuadamente a X su dispositivo? Observaciones La aplicación web es simple e intuitiva. Ilustración 74. Pruebas. Cuestionario Usuario Usuario 2 El segundo usuario que se puso a disposición de cubrir el test es una egregada en informática del Software de 23 años que todavía no tiene el grado terminado. Nunca ha trabajado con servicios web, tan sólo los ha visto a nivel académico. El entorno laboral lo conoce sólo a través de una beca que está disfrutando en estos momentos en la Universidad, pero ha sido designada para realizar la tarea. Usa un ordenador frecuentemente? Todos los días Qué tipo de actividades realiza con el ordenador? Es parte de mi trabajo o profesión Ha usado alguna vez software como el de esta prueba? No, nunca Qué busca principalmente en un programa? Que sea intuitivo Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 161

162 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Desarrollo de las Pruebas Qué tipo de programas suele utilizar en el ordenador? Otros Está acostumbrado a navegar por internet con el teléfono móvil? Sí Posee conocimientos de programación? Sí Ilustración 75. Pruebas. Cuestionario Usuario 2 Facilidad de Uso Siempre Frecuentemente Ocasionalmente Nunca Sabe dónde está dentro de la X aplicación? Existe ayuda para las funciones X en caso de que tenga dudas? Le resulta sencillo el uso de la X aplicación? Funcionalidad Siempre Frecuentemente Ocasionalmente Nunca Funciona cada tarea como usted X espera? El tiempo de respuesta de la X aplicación es muy grande? Han sido útiles los mensajes de X error? Han sido útiles los indicadores? X Ha sido útil la ayuda? X Calidad del Interfaz Aspectos gráficos Muy Poco Nada Adecuado Adecuado Adecuado Adecuado El tipo y tamaño de letra es X Los iconos e imágenes usados son X Los colores empleados son X Diseño de la Interfaz Si No A veces Le resulta fácil de usar? X El diseño de las pantallas es claro y X atractivo? Cree que el programa está bien X estructurado? Se ha adaptado el diseño adecuadamente a X su dispositivo? Observaciones Nada que añadir. 162 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

163 Desarrollo de las Pruebas Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Responsable de Calidad Usuario 1 Aspecto Observado Notas El usuario comienza a trabajar de forma rápida por las tareas Sin ningún problema. Ha registrado el servicio web sin problemas y no ha necesitado ayuda en ningún momento. Tiempo en realizar cada tarea Menos de 5 minutos. Errores leves cometidos Intentar introducir el nombre del paquete en el modelo a registrar. Errores graves cometidos Ninguno El usuario ha preguntado Nada Ilustración 76. Pruebas. Cuestionario Responsable Calidad Usuario 2 Aspecto Observado Notas El usuario comienza a trabajar de Al principio se le vio dubitativa, no enfocaba bien las forma rápida por las tareas tareas. Tiempo en realizar cada tarea Más de 5 minutos Errores leves cometidos Ninguno Errores graves cometidos No introducir de forma correcta la dirección del WSDL, pues introdujo la dirección del Servicio en lugar del fichero. El usuario ha preguntado Frecuentemente, no parecía saber qué estaba haciendo o no tener los conocimientos necesarios. Ilustración 77. Pruebas. Cuestionario Responsable Calidad Pruebas de Accesibilidad (WCAG 2.0) Nivel A WCAG Titulo Comentarios Si No N/A Contenido no textual X Solo audio y solo X vídeo (grabado) Subtítulos X (grabados) Audiodescripción o X medio alternativo (grabado) Información y X relaciones Secuencia X significativa Características sensoriales X Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 163

164 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Desarrollo de las Pruebas WCAG Titulo Comentarios Si No N/A Uso del color X Control del audio X Teclado X Sin trampas para el X foco del teclado Tiempo ajustable X Poner en pausa, detener, ocultar Umbral de tres destellos o menos Evitar bloques No se aplica el saltado de contenido. X X X Titulado de páginas X Orden del foco X Propósito de los enlaces (en contexto) Idioma de la página Está internacionalizada pero cuando cambia el idioma, el <html lang> siempre es el mismo. X X Al recibir el foco X Al recibir entradas X Identificación de Mediante mensajes de alerta X errores Etiquetas o X instrucciones Procesamiento X Nombre, función, valor Ilustración 78. Nivel A Accesibilidad X 164 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

165 Desarrollo de las Pruebas Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Nivel AA WCAG Titulo Comentarios Si No N/A Sub títulos (en X directo) Audiodescripción X (grabado) Contraste (mínimo) X Cambio de tamaño X del texto Imágenes de texto X Múltiples vías Se puede tener en cuenta la página de información como un Mapa Web. X Encabezados y X etiquetas Foco visible X Idioma de las partes X Navegación coherente Identificación coherente Sugerencias ante errores Prevención de Se debe introducir un apartado de errores (legales, Accesibilidad. financieros, datos) Ilustración 79. Nivel AA Acesibilidad X X X X Nivel AAA WCAG Titulo Comentarios Si No N/A Lengua de señas X (grabado) Audiodescripción X ampliada (grabada) Medio alternativo X (grabado) Solo audio (en X directo) Contraste No cumple el ratio exigido. X (mejorado) Sonido de fondo bajo X o ausente Presentación visual X Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 165

166 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Desarrollo de las Pruebas WCAG 2.0 Titulo Comentarios Si No N/A Imágenes de texto X (sin excepciones) Teclado (sin X excepciones) Sin tiempo X Interrupciones X Re-autentificación X Tres destellos X Ubicación No existen unas migas de pan para ubicar al usuario. X Propósito de los X enlaces (sólo enlaces) Encabezados de X sección Palabras inusuales X Abreviaturas X Nivel de lectura X Pronunciación X Cambios a petición X Ayuda X Prevención de errores (todos) Ilustración 80. Nivel AAA Acesibilidad X 166 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

167 Desarrollo de las Pruebas Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 8.4 Pruebas de Rendimiento Las pruebas de rendimiento que se han realizado han sido básicas. Se han tomado tiempos y se ha comprobado el consumo que tendría la aplicación (en MB descargados) por las herramientas de desarrollador de cualquier navegador web (Mozilla Firefox o Google Chrome). En un registro de un servicio web nuevo se realizan 99 peticiones al servidor por recursos (JS, CSS, HTML ) con un total de 63.2 KB en 277ms. Como se puede comprobar es una aplicación muy ligera (todos los ficheros de recursos JS están minificados con lo que su tamaño es casi residual). El proceso de registro del servicio web tarda alrededor de 2 minutos. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 167

168

169 Manuales del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 9. Manuales del Sistema 9.1 Manual de Instalación Para comenzar con la instalación del sistema lo primero que hay que hacer es instalar las herramientas de soporte que hacen falta para la aplicación PostgreSQL Como cualquier aplicación web de hoy en día, hay que instalar un sistema gestor de bases de datos, en esta aplicación se ha optado por utilizar PostgreSQL, pero puede ser sustituida por cualquier otra, siendo conscientes que hay que realizar una serie de cambios en la aplicación (fichero database.properties y persistence.xml para cambiar el driver de Postgre al utilizado, además de IP del servidor, base de datos, nombre de usuario y contraseña). Se puede descargar de aquí la versión que más se ajuste a nuestro sistema operativo: Una vez instalada la base de datos, desde el gestor que incluye (seguir el wizard), hay que crear la base de datos universidades y asignárselo a un usuario que crearemos (preferiblemente distinto a postgres). No es necesario crear las tablas, pues de eso ya se encargará de hacerlo JPA automáticamente Apache Cassandra Una vez instalado el sistema gestor de bases de datos relacionales, hay que instalar el de la NoSQL Clave-Valor y en este caso se ha decidido utilizar Cassandra. En este caso sí hay dependencia de la base de datos con lo que no hay más remedio que utilizar esta. Se puede descargar la versión que es la utilizada aquí : bin.tar.gz Una vez descomprimido el archivo, hay que ejecutar el archivo cassandra.bat que está en la carpeta bin del directorio descomprimido. Esto arrancará la base de datos en modo servidor y ya estará disponible para su uso. Cuando esté arrancada, hay que ir a la aplicación y ejecutar la clase CassandraSetUp que lo que generará será las estructuras necesarias para soportar la aplicación en Cassandra (similar a lo que haría JPA automáticamente). Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 169

170 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Manuales del Sistema Apache Solr Cuando ya tenemos la persistencia instalada, debemos descargar el servidor de búsqueda que vamos a utilizar en la aplicación. Se puede descargar su versión de aquí: Una vez descargada, se ha de descomprimir. Una vez descomprimida la carpeta, se ha de navegar por el interior de la aplicación y sustituir el archivo schemas.xml (solr /example/solr/collection1/conf/) por el que se adjunta como anexo en esta documentación para ajustar los índices del buscador a los de la aplicación. Una vez está sustituido el archivo, se ha de ir a solr-4.7.2/example y ejecutar java jar start.jar para arrancar el servidor Jetty que tiene Lucene instalado ya con las estructuras de la aplicación Apache Tomcat 7 Con toda la estructura ya en marcha, sólo queda desplegar la aplicación dentro de un contenedor de aplicaciones. En este caso se ha elegido Apache Tomcat 7 (http://apache.rediris.es/tomcat/tomcat-7/v7.0.54/bin/apache-tomcat zip) y bastará con arrancar el archivo startup.bat para levantar el servidor. Una vez arrancado, se deberá introducir el archivo buscador.war en la carpeta webapps del servidor además del publisher.war para que se desplieguen Apache CXF Es posible que sea necesario introducir los jars de apache CXF dentro de apache tomcat para que se ejecuten los servicios web. Con esto ya tendríamos nuestras aplicaciones desplegadas en el servidor local. Si por el contrario, queremos hacerlo desde un Entorno de Desarrollo, se puede utilizar Maven para automatizar el proceso. Con ejecutar maven clean install, se descargará todo lo necesario (a partir del paso de Apache Solr inclusive, se tienen que hacer de todas formas) para ejecutar la aplicación y tenerla disponible. Esto generará dos ficheros war (los antes mencionados) para subirlos al servidor. 170 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

171 Manuales del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 9.2 Manual de Ejecución Al ser una aplicación web no es necesario un manual de ejecución puesto que se desplegará automáticamente en el servidor, para instalarlo, sigua el manual anterior. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 171

172 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Manuales del Sistema 9.3 Manual de Usuario Una vez la aplicación ya se encuentra instalada en un servidor y desplegada, el paso a continuación es utilizarla. Este manual servirá para introducir los conceptos más básicos a la persona que vaya a registrar y utilizar la aplicación web. Para comenzar, se deberá visitar desde el navegador la dirección (o donde se encuentre desplegada la aplicación). Lo primero que se ve nada más entrar es la pantalla de bienvenida, que nos mostrará un buscador que todavía no servirá de mucho, pues no hay ningún dato cargado al inicio. Antes de utilizarlo, se deben cargar datos, con lo que para registrar la universidad se debe de pulsar sobre sobre el menú superior en el apartado Registrador de SW. Esto dirigirá al usuario a una página con un formulario dividido en 5 pasos, donde el primero de ellos será introducir los datos de la universidad que se va a registrar (nombre, responsable y url del servicio web). Una vez se continúa a la siguiente pantalla, se deberá seleccionar a qué categoría pertenece cada uno de los métodos del servicio web, y además, el nombre (solo el nombre, sin el paquete) del modelo que incluye la beca y el solicitante. La siguiente pantalla ya estará autorellenada, el sistema propondrá una serie de sugerencias para el autocompletado del formulario que el usuario deberá de corregir en caso de que no sean correctos los emparejamientos de los campos entre los propuestos y los del servicio web que se está registrando. Por último, habrá que repetir el paso anterior, pero esta vez con los campos del Solicitante en lugar de la Beca. Cuando están todos los campos obligatorios cubiertos, se ha de confirmar el registro que concluirá con una pantalla informativa del éxito del registro. Para comprobar que el servicio se ha registrado correctamente, se puede utilizar el buscador para encontrar lo que se acaba de registrar. El buscador se puede utilizar para encontrar operaciones de servicios web por categoría, por nombre del servicio web, por nombre de la universidad Esto resultará en un listado de resultados, que una vez seleccionado el que más satisfaga los intereses del usuario, llevará a un detalle de la universidad, donde se mostrará la URL del servicio web además de los métodos de la universidad por si se quieren utilizar o son de interés. Debido a que son temas programáticos, el uso del recolector se describirá en el manual del programador. 172 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

173 Manuales del Sistema Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 9.4 Manual del Programador Para utilizar el publicador, se ha de consumir su servicio web como si se tratara de un servicio web común. Este servicio web ofrece dos opciones para el método: getbecasbyparam(object param, String category, String university). Una es pasando la Universidad a null. De esta forma se consigue aplicar el parámetro y la categoría seleccionada a TODOS los servicios web registrados en la aplicación. Por el contrario, si se quere obtener los resultados de una sola universidad, se ha de pasar como parámetro el nombre de la universidad (como viene en la página web del buscador). Si por el contrario lo que se quiere es extender la aplicación, es probable que aunque no sea trivial, sí que es posible cambiar el ámbito en el que está centrado. Es decir, con muy pocos cambios se debería de poder hacer o bien parametrizable para que sirva para cualquier dominio o bien adaptarse para utilizarse con ese fin. Lo básico será modificar los modelos relacionados con la universidad e introducir los del nuevo ámbito, modificar las categorías (Vicerrectorado, Alumno y Curso) y modificar los archivos web para que la página se adapte al nuevo dominio (script.js, Controllers ). Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 173

174

175 Conclusiones y Ampliaciones Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 10. Conclusiones Ampliaciones y 10.1 Conclusiones Realizar un Proyecto Fin de Máster es una tarea muy dura. Si además lo compaginas con una jornada laboral completa se hace más complicado todavía. La cantidad de tiempo que se le puede dedicar siempre es limitada, los plazos se ajustan al límite y cualquier fallo que cometas puede resultar en una semana de trabajo de retraso. Si bien el enfoque que se tomó para realizar este proyecto fue realizarlo con mucho adelanto para poder tener márgenes de tiempo holgados al final cuando se mira el trabajo realizado es mucho pero siempre se puede mejorar o se puede tener una sensación agridulce cuando todas esas cosas que se plantean para realizar en un inicio se tienen que cortar por falta de tiempo. Si se ha de destacar alguna cosa buena, desde luego es la gran cantidad de tecnologías que se han probado / utilizado en la realización de este proyecto. Algunas experimentales, otras más consolidadas pero TODAS han sido utilizadas de forma nunca antes vistas por el autor. Especialmente ha sido satisfactorio utilizar un motor de búsqueda como Apache Solr (Lucene) o realizar una experiencia de usuario completamente opuesta a la que se ve en el Máster de Ingeniería Web, es decir, de unas transiciones con recargas de páginas pesadas y poco fluidas a unas peticiones AJAX que son transparentes para el usuario y que tan de moda está. Las sensaciones generales de cómo se ha terminado el producto son buenas, cumple su cometido por el que está desarrollado y servirá de base para realizar una serie de trabajos futuros muy interesantes a nivel académico. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 175

176 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Conclusiones y Ampliaciones 10.2 Ampliaciones Si bien el sistema a la hora de realizar el emparejamiento de campos se comporta de forma correcta, una de las posibles ampliaciones a realizar sería realizar algo más de trabajo en este apartado. Para comenzar, se podría pensar en el emparejamiento de campos que ahora se realiza en la aplicación de las reglas String Metrics y en los emparejamientos previos que se han realizado. El trabajo a realizar a partir de aquí sería pensar en el modelo en tres pasos: el primero sería el que se está realizando tratando los nombres de campos y los otros dos serían tratar el contenido de los campos que recibimos. A estos contenidos se les podrían aplicar sistemas de clasificación como puede ser clustering, redes neuronales, algoritmos de los K-vecinos y conseguir recoger más información que ayudase al sistema que ya está construido. La última parte sería la aplicación de reglas de decisión del tipo si cumple estas condiciones, es esta categoría donde serían especialmente útiles patrones o expresiones regulares para reconocerlos en los contenidos recibidos. Otra ampliación que sería muy factible de realizar sería securizar el servicio web que se ofrece (y la aplicación también) ya que se tratan de datos sensibles, de esta forma se debería de pedir un usuario y una contraseña en el formulario de registro para poder autenticarse contra los servicios web de otras universidades. Si no se quiere realizar la securización de esa forma, se puede incluir dentro de un ESB, de esta forma el sistema podría monitorizarse y controlar los accesos para conocer estadísiticas, además de securizarse. Por último, otra de las ampliaciones factibles de realizar sería la inclusión de tipos complejos a la hora de realizar el trabajo con los servicios web pues habría que montar una estructura excesivamente compleja pero que daría un resultado fantástico. 176 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

177 Presupuesto Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 11. Presupuesto Concepto Descripción Cantidad Precio( ) Subtotal( ) Licencias Micrososft Windows 7 Professional , ,00 Microsoft Office , ,00 Enterprise Architect , ,00 Microsoft Project , ,00 Java Apache Commons Cassandra PostgreSQL Ubuntu Server Desarrollo Trabajo Previo , ,00 Componente Registrador , ,00 Componente Recolector , ,00 Componente Buscador , ,00 Componente Publicador , ,00 Entrega de aplicación 1 600,00 600,00 Formación Usuarios 10 50,00 500,00 Programadores 5 50,00 250,00 Administradores 2 50,00 100,00 Otros Instalación 1 200,00 200,00 Reuniones 6 100,00 600,00 TOTAL (sin IVA) ,00 TOTAL (con 21% IVA) ,40 Tabla 20. Presupuesto. Detalle del Presupuesto Ítem Descripción Cantidad Precio( ) Subtotal( ) 1 Programador , ,00 2 Programador , ,00 3 Programador , ,00 4 Programador , ,00 5 Analista , ,00 6 Analista , ,00 7 Tester , ,00 8 Diseñador , ,00 9 Administrador de Sistemas ,00 350,00 10 Jefe de Proyecto , ,00 TOTAL (sin IVA) ,00 TOTAL (con 21% IVA) ,50 Tabla 21. Presupuesto. Personal implicado En los presupuestos que se presentan, están desglosados los ítems genéricos del primer presupuesto. De esta forma, se puede ver que hay dinero dedicado a licencias (algunas de las Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 177

178 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Presupuesto que se incluyen son a coste cero), el precio por componente desarrollado, el dinero destinado a formación y a otros gastos como pueden ser desplazamiento y tiempo de reuniones e instalación del sistema. Además también se adjunta un segundo presupuesto que describe el costo de recursos humanos dentro del proyecto, que sería aplicable como una mayor descripción del primero. Los gastos derivados del desarrollo como pueden ser autónomos, gastos de electricidad, de uso de equipos y demás han sido distribuidos a lo largo de los componentes, para que de esta forma no se tengan conceptos extraños dentro del presupuesto. 178 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

179 Referencias Bibliográficas Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 12. Referencias Bibliográficas 12.1 Libros y Artículos [Athena] Advanced Technologies for Interoperability of Heterogeneous Enterprise Networks and their Applications Athena. [Cohen] A Comparison of String Distance Metrics for Name-Matching Tasks William W. Cohen et alumni. [Heimans] ONTOLOGY REASONING WITH LARGE DATA REPOSITORIES Stijn Heimans et alumni. [Henb] A Database Backend for OWL - Jorg Henb, Joachim Kleb, Stephan Grimm, Jurgen Bock. [LePendu] Ontology Database: A New Method for Semantic Modeling and an Application to Brainwave Data - Paea LePendu, Dejing Dou, Gwen A. Frishkoff, Jiawei Rong. [Meditskos] Combining a DL Reasoner and a Rule Engine for Improving Entailment-based OWL Reasoning - Georgios Meditskos, Nick Bassiliades. [Minerva] Minerva: A Scalable OWL Ontology Storage and Inference System - Jian Zhou, Li Ma, Qiaoling Liu, Lei Zhang, Yong Yu, Yue Pan. [Oracle] ORACLE SPATIAL AND GRAPH RDF SEMANTIC GRAPH Oracle. [Parsia] The OWL-S Experience (are you experienced?) - Bijan Parsia, Evren Sirin, James Hendler. [Srinivasan] Adding OWL-S to UDDI, implementation and throughput Naveen Srinivasan, Massimo Paolucci, Katia Sycara. [Stanford] Semantic Web Services - Sheila A. McIlraith, Tran Cao Son, Honglei Zeng. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 179

180 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Referencias Bibliográficas 12.2 Referencias en Internet [BBC] BBC World Cup 2010 dynamic semantic publishing m.html [Cassandra] Apache Cassandra Download [Cloud4SOA] A Cloud interoperability framework and platform for user-centric, semantically enhanced, service-oriented application design, deployment and distributed execution [egms] e-gms-e-government Metadata Standard [egov] Access egovernment An educational program [EsLoMas] Visión del W3C sobre la Web Semántica [GIC] The Greek interoperability centre: enabling research in the interoperability domain [GILS] GILS What is it? Where's it going? [Java] Java Development Kit 7 [Jena] Apache Jena [KAON] KAON, Wikipedia [Khaos] DBOWL: A SCALABLE OWL-DL REASONER [Konstantinou] ONTOLOGY AND DATABASE MAPPING: A SURVEY OF CURRENTIMPLEMENTATIONS AND FUTURE DIRECTIONS Implementations_and_Future_Directions [LinkedData] Linked Data - Connect Distributed Data across the Web [LinkedDataTools] Tutorial 5: Querying Semantic Data 180 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

181 Referencias Bibliográficas Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo [Maven] Apache Maven Download [MiREG] A Framework for Management of Information Resources in E-government Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D %26tag%3D1 [MisBytes] Aplicación empresarial de Ontologías Informáticas SWWS [MKBergman] Ontology-Driven Apps Using Generic Applications [MRebollo] Servicios Web Semánticos [ODP] Ontology Design Patterns [OntoGOV] Ontology enabled E-Gov Service Configuration [Ontotext] OWLIM Downloads [OWL-S] OWL for Services [OWL-S2] OWL-S Semantic Markup for Web Services S/ [OWL-SKOS] Using OWL and SKOS [OWL] Lenguaje de Ontologías Web (OWL) [OWLDB] A backend for native OWL Persistence [PAE] Portal de Administración electronica &langPae=es#.U4n9D_m00hc [PostgreSQL] PostgreSQL Download [SAKE] SAKE: Semantic-enabled Agile Knowledge-based e-government Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 181

182 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Referencias Bibliográficas [SEEMP] The SEEMP Approach to Semantic Interoperability for E-Employment [SemanticGOV] SemanticGOV, Wikipedia [Simmetrics] Simmetrics Sourceforge [SmartGOV] A Governmental Knowledge-based platform for public sector online services [Solr] Apache Solr Download [Spring] Spring Framework [Spring2] Spring Tool Suite Download [Stardog] Stardog Documentation [TerreGOV] Terregov: Impact of egovernment on Territorial Government Services" https://www.gfi.be/hosting/gfi/website/wcmen.nsf/pages/terregov [Tomcat] Apache Tomcat 7 Download [UDEF] Universal Data Element Framework, Wikipedia [Virtuoso] Virtuoso Sesame Provider 182 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

183 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Capítulo 13. Apéndices 13.1 Glosario y Diccionario de Datos ABox: Conjunto de razonamiento que se basa en inferir razonamiento sobre las instancias de una ontología. API: Application Programming Interface, es un conjunto de clases, método e interfaces que ofrecen una funcionalidad externa. DDL: Data Definition Language, es el lenguaje que se utiliza en los DBMS para crear y modificar las estructuras de las bases de datos. DIG: Interface común que comparten los razonadores para facilitar el cambio de un razonador por otro sin necesidad de realizar grandes modificaciones en el programa. Eclipse: Entorno de desarrollo más utilizado por la comunidad fundamentalmente centrado en Java y escrito en el mismo lenguaje. Framework: Conjunto de herramientas, módulos y artefactos software que dan soporte a un problema concreto y que permite construir software sobre él. Es común que además, el framework sea ampliable. IDE: Integrated Development Environment, es un entorno de desarrollo que permite al programador escribir, compilar y ejecutar programas además de depurar los errores que pueda tener el mismo. Instancia: Una instancia de una clase es una concreción de un tipo. Por ejemplo, Pedro desde un punto de vista programático podría ser una instancia de la clase Persona. JDBC: Java Data Base Connector, es un driver basado en ODBC que permite la conexión desde Java a una base de datos. Concretamente es una estandarización de esta conexión para permitir el intercambio de bases de datos sin necesidad de realizar grandes cambios en la estructura del programa. KB: Knowledge Base, es una base de datos orientada a la gestión de unidades de conocimiento. KRSS: Knowledge Representation System Specification, Sistema de especificación de representación de conocimiento, sirve para definir unidades de conocimiento. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 183

184 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Apéndices Matcher: Componente que se encarga de emparejar los campos entre una Universidad concreta y el modelo genérico. Para realizar el emparejamiento, se utilizará primero la base de conocimiento adquirida en los anteriores emparejamientos, pues se realimenta mediante una base de datos NoSQL. En caso de que el match no sea válido, se pasaría a aplicar técnicas de comparación de cadenas de texto que se denominan String Métrics, que calculan la distancia entre dos cadenas de texto dando como resultado un valor numérico. Cuanto más grande sea este número, mayor será la probabilidad de que se esté comparando la misma cadena de texto. Para esta aplicación, se ha fijado un grado de compatibilidad del 70 %. Modelo de referencia: Es un modelo propuesto por la entidad reguladora que se utilizará para asegurar la homogeneidad en los resultados que se obtendrán en la invocación de los diferentes SW que se han registrado previamente pues se utilizará como molde para la traducción de los casos concretos en genéricos. Módulo buscador: Módulo web que permite a los usuarios del sitio encontrar los diferentes servicios registrados en el catálogo. Módulo invocador / Recolector: Proceso que permite invocar los SW que están registrados en el catálogo y obtener los resultados de forma homogénea, pues cada resultado de cada método de los SW van traducidos según el Modelo genérico. Módulo Registrador / Registrador de SW: Es un módulo web que se encarga del registro de los Servicios Web que ofrece una Universidad concreta para añadirlos al catálogo de servicios. Simplificándolo, se puede ver como un formulario que recoge los métodos que ofrece el WSDL, seleccionar los más relevantes y realizar un emparejamiento de los campos del modelo que utiliza la Universidad concreta y el modelo genérico. NoSQL: Grupo de nuevos SGBDs que no basan su almacenamiento en un modelo relacional, como pueden ser las orientadas a documentos, clave-valor, grafos Es muy común que tengan un mayor rendimiento que las antiguas relacionales además que se cree que están más adaptados a las necesidades modernas que los registros de las relacionales. OBDB: Ontology Based Data Bases, Igual que un RDBMs pero en lugar de orientado a modelos relacionales lo está a ontologías. OBO: Sirve para definir ontologías, pero orientadas a biología y genética. Son más simples de utilizar. ORM: Object Relational Mapper, es un conversor entre registros de la base de datos y clases del modelo de una aplicación. De esta forma, un ORM se encarga de generar las estructuras necesarias para replicar el modelo de la aplicación en la base de datos y de esta forma poder persistir el estado de una instancia de una clase en registros de la base de datos pues es habitual que un atributo de una clase esté correspondida con una columna de una tabla, y esta misma tabla con la clase. En Java, la especificación está definida por JPA, siendo necesario utilizar una implementación, como por ejemplo, Hibernate. Plugin: Aplicación que permite ampliar la funcionalidad original de un producto. 184 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

185 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo RDBMs: Relational Data Base Management System, Sistema Gestor de Bases de Datos Relacionales que permite gestionar una base de datos (conjunto de datos). Una de las más famosas es Oracle. Resaltado sintáctico: Capacidad casi imprescindible de cualquier buen IDE, es un soporte que te da el editor de texto para colorear las sentencias de código en función de su categoría. Servicio Web: Es una forma de intercambio de información entre aplicaciones que permite hacer públicas tus aplicaciones para que cualquiera pueda conectarse a ellas mientras siga unos protocolos establecidos. Cabe destacar que permite la interoperabilidad de sistemas aunque estén escritos en lenguajes de programación diferentes. SNARL: Es un sistema que permite mostrar notificaciones en el escritorio. Generalmente se utiliza en sistemas Unix. SOA: Service Oriented Architecture, Arquitectura que fomenta la construcción de software mediante Servicios Web. SOAP: Simple Object Access Protocol, es un protocolo de intercambio de datos que permite la realización de Servicios Web. SPARQL: SPARQL Query Language for RDF, SPARQL lenguaje de consultas para RDF es una recomendación del W3C para la consulta de datos sobre ontologías. Stack: Conjunto de tecnologías, servicios, herramientas, aplicaciones SWRL: Semantic Web Rule Language, permite definir reglas semánticas en lenguajes como OWL mediante el lenguaje RuleML. TBox: Conjunto de razonamiento que se basa en inferir razonamiento sobre la definición (pertenencia a clases, por ejemplo) de una ontología. Turtle: Es una sintaxis de RDF que permite describir documentos ontológicos RDF mediante lenguaje natural. W3C: World Wide Web Consorcium, empresa encargada de estandarizar y desarrollar tecnologías Web. WSDL: Web Service Description Language, es un lenguaje que permite definir cómo se comporta un Servicio Web. También puede referirse a la URL donde está definido ese archivo de forma indistinta. XML: extensible Markup Language, es un formato que permite transmitir información de modo estructurado. Su gran hándicap es la cantidad de código innecesario que se genera entorno a los datos a transmitir. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 185

186 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Apéndices 13.2 Justificación del Cambio El motivo por el que se decidió cambiar el modelo fue en esencia, debido a que no se consiguió elaborar un modelo semántico sobre el que realizar la aplicación, es decir, dadas las herramientas que proporciona la construcción de ontologías, no creí que fueran suficientes para montar un sistema semántico y similar al que ya existía. Se podría explicar de otra forma, que con la funcionalidad que te provee OWL (tecnología definida para ontologías de obligada utilización en la administración pública) no se ha conseguido representar el modelo que existía, bien por desconocimiento, bien porque la tecnología no lo permite. Además, una ontología tampoco serviría para obtener el resultado que se busca de traducir los servicios web que ya existen en otro común, pues una ontología no te permitiría realizar traducciones de campos de una clase, una ontología lo que te permite es hacerle preguntas en base a las relaciones que se forman en ella. Un ejemplo perfecto de cómo funciona una ontología sería representar un árbol genealógico, donde definirías los conceptos de padre, hijo, tío, hermano, etc y tras realizar un árbol de una familia, podrías preguntar qué relación existe entre Juan y Luis, a lo que te respondería que son primos, por ejemplo. Es por ello, que decidimos cambiar el modelo en el tema funcional, manteniendo esa esencia semántica pero desde un punto de vista más práctico, mediante el uso de diccionarios. De esta forma, lo que hacemos es crear una base de conocimiento donde vamos recogiendo los casos concretos de cada universidad y que pueden ser aplicados a las siguientes que se vayan a registrar. Es decir, si la Universidad 1, dice que sus campos son ape1 y ape2 para formar apellidos, cuando venga a registrarse la Universidad 2, y por ejemplo su campo para formar apellidos fuera ape, nos estaría dando un matching válido o también podría ser que tuviera ape1 y ape2 también definidos con lo que también obtendríamos el mismo resultado. Al estar jugando con que estamos utilizando el mismo modelo pero con nombres ligeramente distintos, la utilización de diccionarios y de las tecnologías de StringMetrics (funciones que evalúan cuánto se parecen dos palabras) parece que son más acertadas para realizar traducciones de unos modelos en otros. 186 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

187 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo 13.3 Estado del Arte de la Web Semántica Introducción En el siguiente documento se va a recoger un estudio sobre la situación actual de la Web Semántica. En él se tratarán términos como Ontología, qué lenguajes se pueden utilizar para definirlas, qué herramientas son las que más repercusión están teniendo y una serie de razonadores para ejecutar consultas sobre ontologías. También se tratarán los Servicios Web Semánticos y en qué estado se encuentran, cómo se definen y qué entornos de ejecución existen además de ver qué controversia existe a la hora de utilizar una ontología cuando se tienen que crear instancias y qué bases de datos actualmente pueden ser útiles. Para terminar, se describirá una arquitectura que se podría seguir a la hora de implementar un aprovechamiento semántico Ontología Una ontología informática define de manera enriquecida y formal un modelo del dominio para catalogar diferentes recursos Web. Esto quiere decir, que puede dar un significado semántico compuesto por entidades (clases o conceptos) y atributos, las relaciones que existen entre estas entidades, bien sea de modo cuantificable o categorizado así como una serie de axiomas que permitirá obtener resultados sobre las instanciaciones de estas clases. Debido a la obtención de este modelo enriquecido, se puede obtener una comunicación entre sistemas más rica, permitiendo que las propias máquinas sean capaces de inferir conocimiento sobre unos datos de forma desatendida. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 187

188 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Apéndices Lenguajes de Definición Existen dos lenguajes de definición de ontologías que destacan sobre los demás: OWL (Web Ontology Language) y WSMO (Web Server Modeling Ontology). Existen otros como RDF(Resource Description FrameWork) y RDFS(RDF Schema) pero tienen un menor grado semántico dentro de los diferentes lenguajes. Ilustración 81. Stack de Tecnologías Semánticas OWL (Web Ontology Language) Desarrollado por el W3C y una de las más longevas. Recientemente apoyado por la Administración Pública Española (BOE-A ) en su Norma Técnica de Interoperabilidad de Catálogo de Estándares, es un lenguaje de definición de ontologías que permite definir Clases, Relaciones, Axiomas, Atributos e Instancias. Además, existen tres grados para definir ontologías con OWL: OWL Lite: Expresividad reducida y la versión más limitada de las tres. OWL DL: Orientado al Lenguaje Descriptivo (DL), es el que exigen la mayoría de razonadores para ejecutar sus motores de inferencia. Más enriquecido que OWL Lite, permite añadir Reglas a la definición para aplicar inferencia en tiempo finito. OWL Full: Está un nivel por encima de OWL DL, aumenta la expresividad del anterior pero ya no se puede asegurar la completitud del razonamiento en tiempo finito. 188 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

189 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Es posible establecer un diagrama de conjuntos entre estos lenguajes: Ilustración 82. Niveles de OWL WSMO (Web Service Modeling Ontology) Pertenece a un conjunto de conceptos que definen una especie de framework para definir un ciclo de vida del software completo aunque el recomendado sea OWL por su nivel de madurez. Está constituido por WSMO (Web Service Modeling Ontology), WSML (Web Service Modeling Language) y WSMX (Web Service Modeling execution environment). De esta forma, WSMO permite definir el modelo conceptual para un Servicio Web Semántico, WSML es el propio lenguaje en el que se desarrollará la ontología y WSMX es el entorno de ejecución en el que se integrarán los Servicios Web Semánticos desarrollados. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 189

190 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Apéndices Al igual que OWL, WSML también presenta diferentes niveles de definición, siendo éstos: WSML-Core: Versión básica del lenguaje de definición, permite Conceptos (clases), relaciones binarias, instancias y relaciones jerárquicas. WSML-DL: Versión de OWL-DL en lenguaje WSML, añade lógica descriptiva a WSML- Core. WSML-Flight: Otra vertiente de WSML-Core, al mismo nivel de WSML-DL, permite incluir restricciones en forma de reglas. WSML-Rule: Incremento de WSML-Flight, además de lo anterior permite definir reglas no seguras de completitud en tiempo finito. WSML-Full: Aúna WSML-Rule y WSML-DL en un mismo tipo, siendo el tope jerárquico dentro de WSML. Ilustración 83. Niveles de WSML Herramientas Para la creación de ontologías y la utilización de los diferentes lenguajes, existen una serie de herramientas específicas para cada uno de estos lenguajes. Las más destacadas pueden ser Protégé, WSMT y WSMO Studio, la primera para OWL y las otras dos para WSMO Protégé Desarrollado por la Universidad de Stanford, Protégé está en su versión 4.1 y permite la creación de ontologías mediante una interfaz gráfica siendo la creación de clases y atributos un proceso trivial. En esta versión se ha quitado funcionalidad que bajo el punto de vista del autor, era fundamental. En la anterior versión de Protégé (3.4.8) incluía una definición de formularios que permitía encorsetar los campos de las clases para facilitar la creación de instancias en gran medida, además de permitir la asociación de clases a los atributos y las relaciones en forma de operadores OR. Esto último es especialmente importante debido a que si no se implementan las asociaciones mediante OR, las instancias que tengan esas relaciones y esos atributos pertenecerán a todas las clases que tengan esas mismas instancias. 190 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

191 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo De esta forma, se puede tener una clase Perro que tiene un atributo nombre y una clase Hombre que tiene el mismo atributo nombre. Cuando realizamos la asociación de los atributos a las clases si no se utiliza OR impactará en la creación de una instancia Perro y una instancia Humano, de esta forma la instancia Luis y la instancia Toby, pertenecerán a las clases Perro y Hombre cuando sólo tendrían que pertenecer a Hombre y Perro respectivamente. Otra de las características interesantes que incluye Protégé es la integración con diferentes razonadores, como pueden ser Pellet y FaCT++ por defecto además de poder ser ampliados mediante plugins. Por estas características la versión que se recomienda óptima de utilización sería la de forma que se optimizará la creación de ontologías y sus instancias WSMT (Web Service Modeling Toolkit) Web Service Modeling Toolkit permite desarrollar los dos conceptos que propone WSMO, la ontología y el enriquecimiento de los Servicios Web Semánticos. Actualmente está en su versión 2.0 y también permite la publicación de ontologías en un entorno WSMX además de realizar consultas sobre los diferentes razonadores específicos para cada uno de los diferentes sabores de WSML. Desarrollado sobre la arquitectura del IDE Eclipse, para los que estén familiarizados con esta plataforma les puede resultar realmente sencillo crear ontologías con esta herramienta, además de poseer un entorno gráfico de la forma que lo incluye Protégé aunque menos vistoso y funcional, luego toda la parte de la definición es más como realizarlo escribiendo código aunque proporcione soporte para la escritura y resaltado sintáctico como cualquier entorno de desarrollo. Cabe destacar que la visualización de la ontología una vez realizada por medio de diagramas de burbujas, es mucho más clara que en Protégé pues aprovecha de mejor forma los espacios y no realiza un gráfico atropellado como Protégé WSMO Studio WSMO Studio pretende ser una alternativa a WSMT, de la misma forma, tiene su estructura relacionada con Eclipse, concretamente está construido como plugins de éste, aunque también existe la forma de encontrarlo ya integrado con Eclipse para su descarga. Como contrapunto a WSMT, no posee razonadores para inferir conocimiento en el propio entorno de desarrollo pero sí que tiene un entorno gráfico para construir ontologías aunque similar al que ofrece WSMT (poco cuidado) además del propio editor de texto con resaltado sintáctico. En el caso de las representaciones gráficas de la ontología, utiliza también el mismo sistema que WSMT, ofreciendo un marco de trabajo más limpio que Protégé. Además tiene un apartado de Repositorio donde permite publicar las ontologías generadas. Para terminar, hay que destacar que es una herramienta que está en fase beta, concretamente la y data del 2008 con lo que da que pensar que está algo olvidado su desarrollo. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 191

192 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Apéndices Razonadores En este apartado aparecerán razonadores para ambos lenguajes, de esta forma, se tratarán Pellet y FaCT++ para OWL e IRIS para WSMO ya que otros razonadores como RACERPro son herramientas de pago y parece que están desactualizadas (página web sin modificaciones desde el 2009) Pellet Razonador sobre la capa OWL DL (permite OWL 2) escrito en Java de la empresa Clark&Parsia bajo licencia AGPL v3 para desarrollos Open Source y bajo otras licencias no especificadas (se entiende que comerciales) en caso de desarrollos propietarios. Incluye soporte para consultas con SPARQL, razonamiento de tipos, soporte para reglas SWRL además de permitir depuración de ontologías. Existe un plugin para Protégé que integra el razonador con el IDE y nos permite realizar consultas mediante SPARQL, inferir tipos de las clases y los atributos e inferir relaciones. Permite razonamientos sobre ABox, TBox y sobre KB (Knowledge Base) en una ontología completa y es especialmente interesante que esté escrito en Java, de esta forma se puede integrar con multitud de aplicaciones programadas en este lenguaje (Jena, sobretodo). Ilustración 84. Arquitectura Pellet 192 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

193 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo FaCT Razonador escrito en C++ y de código abierto publicado bajo una licencia GNU pública propiedad de la Universidad de Manchester, también existe en desarrollo una versión Java denominada JFact. La última versión es la del 26 de Octubre de 2012, luego se entiende que es de las pocas herramientas que todavía están en continuo desarrollo y no abandonada (caso de RacerPRO). Está implementado sobre la OWL API, luego le permite interactuar con RDF, OWL, Turtle, KRSS y OBO aunque tan solo soporta OWL 2 DL de forma parcial debido a que tiene problemas con el soporte para ciertos tipos de datos y las claves. Estos problemas hacen que el uso de esta herramienta sea descartado, al menos hasta que se solventen estos problemas. Debido a la constante evolución de la herramienta, da que pensar que se solucionará pronto IRIS (Integrated Rule Inference System) Es un razonador escrito en Java que funciona con ontologías de tipo WSML además de con RDFS y que permite negación de tipo well-founded, stratified y reglas no seguras. Tiene una licencia LGPL y está financiado por SOA4ALL y European Framework 7. La última versión de este razonador, la 0.61 es de Agosto de hace un año y no es una versión release que es la 0.60 de Febrero de 2010, con lo que se puede afirmar que el proyecto va lento pues no tiene una versión estable lanzada, sólo betas aunque en su página web existe un apartado para realizar una demo online donde permite la entrada de una serie de reglas y axiomas para ejecutar el razonamiento sobre ellas Servicios Web Semánticos Los Servicios Web Semánticos son una forma de explotar esta nueva visión de la Web compuesta por Ontologías. Debido a su naturaleza de sistemas expuestos (o formas de exteriorizar información) a otros sistemas, son las herramientas más indicadas para conseguir explotar esta nueva arquitectura por buscar la inferencia de información de forma desatendida para proporcionar esta información Lenguajes de Definición Como lenguajes de definición de Servicios Web Semánticos los más utilizados y siguiendo con los de definición de ontologías se puede hacer una conexión entre WSMO y WSML y entre OWL y OWL-S. En el primer caso, es el mismo lenguaje que se estaba utilizando para la creación de las ontologías y en el segundo, lo que se hace es agregar una capa a las tecnologías existentes (WSDL, Web Service Description Language) para permitir la compatibilidad entre OWL y los Servicios Web. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 193

194 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Apéndices WSML (Web Service Modeling Language) Es el mismo lenguaje que se utiliza para la creación de ontologías descrito anteriormente, salvo que en esta orientación hacia los Servicios Web Semánticos, permite definir mediadores y metas, para definir el comportamiento de los servicios web y las metas que pueda buscar el usuario. Ilustración 85. Enfoque de WSMO OWL-S (Web Ontology Language Services) Como se ha comentado anteriormente, OWL-S se tiene que tomar como servicio de marcado para los Servicios Web existentes, es más, lo que hace es enriquecer WSDL para poder dar soporte a las Ontologías definidas con OWL. Para lograr esto, OWL-S define tres etapas que son las del Service Profile (perfil del servicio), Process Model (modelado del proceso) y Grounding (forma de interaccionar con la ontología). Service Profile: Se encarga del descubrimiento y la selección de servicios. Process Model: Ontología que se encarga de procesar las operaciones del servicio. Grounding: Define los mensajes de interoperabilidad con otros servicios. Ilustración 86. Enfoque de OWL-S 194 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

195 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Entornos de Ejecución Para conseguir ofrecer estos Servicios Web Semánticos, en el caso de OWL-S nos bastará con un Servidor de Servicios Web común como puede ser Axis que ya se estaría utilizando para los actuales Servicios Web, en el caso de los proporcionados por WSMO, requerirán de un entorno de explotación concreto que viene agregado en el Stack de WSMO, el WSMX (Web Service Modeling execution environment) Axis Servidor que permite desplegar Servicios Web de la fundación Apache implementando el protocolo SOAP WSMX (Web Service Modeling execution environment) Ilustración 87. Interacción con WSMX WSMX es un entorno de ejecución que permite desplegar Servicios Web Semánticos modelados con WSML. Este entorno se encarga de la publicación de estos servicios, además de publicar las ontologías por separado. Para la publicación de estos servicios, internamente también implementa un servidor Apache Axis para la publicación de Servicios Web. Concretamente, WSMX lo que hace es permitir el descubrimiento dinámico, la mediación y la invocación de Servicios Web. De esta forma, se encarga de utilizar los mediadores definidos así como de definir las metas que vienen predefinidas en los archivos de WSMO seleccionando el Servicio Web que mejor se adecúe según las necesidades de la petición. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 195

196 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Apéndices Almacenamiento de ontologías Inicialmente, las ontologías fueron creadas como un modelo cerrado. Esto quiere decir que una ontología una vez se creaba, no se modificaba posteriormente, o al menos no se pretendía modificarla dinámicamente. Por ello, sus clases, relaciones y atributos eran definidos junto con sus instancias y no variaban. Según en qué entornos, éste puede ser un aprovechamiento de la tecnología muy válido y suficiente, pero si se enfoca el problema hacia el desarrollo de aplicaciones empresariales, es necesario poder generar instancias de las clases de forma dinámica, puesto que las propias aplicaciones empresariales generarán datos de esta forma. Para la solución de esta controversia, existen una serie de tecnologías que pueden dar soporte para ello DBOWL Propuesto por la Universidad de Málaga, presenta una arquitectura propietaria que consta de una RDBMS Oracle 11g para la persistencia de las instancias (ABox) que monta encima un razonador RACER Pro. Esto implica que tanto Oracle 11g como RACER Pro son sistemas de pago. El problema que tiene esta herramienta es que tan solo se puede interactuar con ella mediante su web (http://khaos.uma.es/dbowl/html/overview.jsp) y se conocen sus bondades a través de un artículo científico, con lo que no existe una forma de comprobar fehacientemente que es una herramienta que se pueda utilizar para nuestros propósitos OntoDB Para utilizar OntoDB, se debe instalar un PostgreSQL (a fecha de este documento está en la 9.2.1, puede ser un problema) y de una forma extrañamente concreta (el idioma de la instalación por ejemplo, forzosamente debe ser el francés). Basado en la ontología de catalogación PLIB que en los 90 fue creada para catalogar componentes industriales en catálogos electrónicos, utiliza su propio lenguaje de consultas y de DDL, OntoQL, frente a lo habitual, que es SPARQL. Otro de los puntos conflictivos es que no se puede importar una ontología creada anteriormente con un editor si no que se debe de introducir a mano mediante OntoQL, por lo que hace excesivamente necesario el aprendizaje de este lenguaje para la utilización de la herramienta. 196 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

197 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo DLDB-OWL Herramienta del 2004, tan sólo se publicó esta versión 1.0. Utiliza una versión de Fact (JFact) para realizar razonamientos. Al contrario que OntoDB, este DBMS permite la importación de la ontología en formato OWL dentro de la base de datos, pero lo que no permite es utilizarse en forma de servidor. El mayor problema que presenta esta solución además de no permitir la utilización en modo servidor, es que para persistir los datos de la ontología utiliza Microsoft Access con lo que hace inviable su utilización en casi cualquier entorno empresarial debido a la utilización de máquinas Unix IBM-SOR Siguiendo el modelo de DBOWL, pero unos años antes, IBM también propuso un sistema parecido, pero en este caso propone un cambio en la arquitectura que resulta muy interesante. El mayor problema es que el artículo es de 2007 y a fecha de noviembre de 2012 no se conoce implementación de dicha herramienta. Ilustración 88. IBM-SOR Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 197

198 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Apéndices InstanceStore Compuesta por un RDBMS y un razonador y con la premisa de utilizar el razonador única y exclusivamente cuando sea necesario, esta solución delega todo el trabajo en la base de datos salvo en los casos en los que la caché no pueda solventarlos que es cuando entonces ejecutará razonamientos ABox sobre ontologías OWL. Para cada una de las ontologías que se quieran utilizar en esta herramienta, creará una base de datos nueva, incluso cuando sean dos esquemas iguales con lo que se tendrá que tener especial cuidado a la hora de utilizarla e intentar aunar las ontologías bajo un mismo fichero. Como característica destacable, no está ligado a ningún razonador concreto ni a ningún RDBMS concreto. Esto es posible debido a que utiliza Java para la implementación luego mediante JDBC permite el uso de Oracle, Hypersonic o MySQL y para la parte del razonador una interface DIG que permite conexiones con FaCT, Racer y FaCT OWLIM Base de datos comercial implementada en Java, permite integración con Jena y con Sesame para su utilización desde código. Existe en tres versiones (Lite, SE y Enterprise) siendo la versión a utilizar en entornos empresariales la SE o si se necesita de escalabilidad la Enterprise. La versión Lite es gratuita, pero no es posible su utilización en entornos comerciales. Puede que sea la más famosa, debido a ser el sistema de bases de datos que utilizó la cadena británica BBC para introducir semántica en su página web deportiva con motivo de cubrir la Eurocopa 2010 y los Juegos Olímpicos 2012 mediante ontologías en RDF Stardog Lanzada su versión 1.1 en Noviembre del 2012, Stardog es una base de datos RDF comercial con modo servidor, que almacena sus instancias en RDF y aplica razonamiento OWL. Tanto OWLIM como Stardog, son alternativas comerciales a las anteriores, pero cabe destacar que son las que parecen más profesionales. Incluye integración con Java y con Spring para una fácil utilización de la base de datos desde código mediante Jena, Sesame y SNARL. 198 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

199 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Problemas Como se puede comprobar en los casos expuestos, hay excesiva diversidad de implementaciones, unas con un RDBMS como soporte, otras con un sistema propio, unas con razonadores externos, otras con él propio, otras con almacenamiento tipo RDF(tripletas), otros bajo un esquema ontológico... pero con un denominador común, todas están en fases iniciales. De hecho, que Stardog y OWLIM sean las más profesionales puede ser debido única y exclusivamente a que hayan invertido dinero y tiempo en la forma de presentación del producto mediante la creación de sus páginas web. Otro de los puntos que más se repiten en la mayoría de las soluciones es que vienen siendo consecuencias de publicaciones científicas por ello muchas de ellas no superan la versión 1.0 o ni siquiera llegan a implementarse completamente y llevan sin actualizarse desde hace más de tres años. Por último, la inclusión de razonador o no es fundamental, debido a que si se tiene que realizar una transformación de la base de datos a memoria para obtener OWL y luego utilizar un razonador externo, a parte de tener que transportar gran parte de la base de datos a memoria, se va a tener que procesar todo en memoria con el costo de tiempo que ello conlleva. Esta inclusión del razonador también lleva implícita la problemática de tener la capacidad o no de realizar razonamientos sobre ABox o sólo sobre la TBox. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 199

200 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Apéndices Arquitectura Bajo el punto de vista del autor, una forma factible de llevar a cabo la inclusión semántica dentro de una arquitectura SOA podría ser la siguiente: Ilustración 89. Arquitectura SWS Como podemos ver, el modelo de la ontología definido irá persistido en una de las bases de datos mencionadas en este documento, además de ir agregando instancias que se puedan generar por medio de las aplicaciones definidoras de trámites que ya están en funcionamiento. Por otro lado tendremos los Servicios Web Semánticos que realizarán peticiones sobre una instanciación del framework Apache Jena que se encargará de traducir las peticiones en razonamientos sobre la capa razonadora del OBDB y devolver los resultados al Servicio Web que realizó la petición Apache Jena Este framework escrito en Java de la Apache Foundation tiene una sección propia dentro de este documento debido a las capacidades que ofrece a los programadores. En su sitio web se define como una herramienta para crear aplicaciones web semánticas y razón no les falta. Por un lado, nos ofrece una API para procesar y escribir RDF en XML, tripletas y otros formatos. También nos permite gestionar mediante otro API, ontologías en OWL y RDFS. Tiene un razonador propio y además mediante interfaces se complementa con casi todos los razonadores del mercado que tengan una interface Java (la gran mayoría). 200 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

201 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Otra de las versatilidades que incluye, es la capacidad de almacenar contenido mediante tripletas RDF en disco además de aplicar razonamientos mediante SPARQL. Como contrapunto a lo anterior, todavía no da soporte para OWL 2 pero es una de las características a las que se le espera que de soporte pronto (está incluida en su roadmap). Además ofrece la ampliación mediante componentes propios de Jena, como pueden ser SDB y TDB que permite persistir ontologías, la primera apoyándose en un RDBMS común (como Oracle o PostgreSQL, por ejemplo) y la segunda utiliza un Tuple-Store habitual. Además permiten razonamientos sobre ellos. Ilustración 90. Arquitectura Apache Jena Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 201

202 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Apéndices Tecnologías y Herramientas seleccionadas Finalmente las tecnologías que se van a utilizar, en el proyecto son las siguientes: OWL: Esta viene impuesta por la NTICAP (Norma Técnica de Interoperabilidad de Catálogo de estándares de la Administración Pública) publicada en el BOE A (número 262, Miércoles 31 de Octubre de 2012, Sec. III Pág ) además de ser una tecnología más madura que WSMO y no necesitar del añadido de tener que utilizar un entorno de ejecución a parte (WSMX) ya que OWL-S puede funcionar sobre un Apache Tomcat. OWL-S: Debido a que sin él no podemos utilizar Servicios Web Semánticos mediante la creación de ontologías en OWL. Apache Jena: Es el framework que se va a utilizar para manejar las ontologías en memoria además de crear nuevas instancias sobre las ontologías. Como punto fuerte además tiene que nos permite solucionar el problema de la persistencia mediante SDB y con el motor SPARQL que incluye junto con su razonador propio. PostgreSQL: Se utilizará este RDBMS por ser el sistema utilizado en la empresa, realmente serviría cualquiera para complementar a SDB. Protégé: Por ser el editor más extendido en la codificación de Ontologías (se podría haber utilizado Java combinado con Jena, pero sería muy tedioso) y ser fácil de utilizar, además de soportar plugins para OWL-S y permitir realizar el enriquecimiento de la ontología mediante servicios web. Eclipse: Entorno de desarrollo para codificar el proyecto que integrará todas las tecnologías aquí mencionadas. pgadmin: Interfaz que permite conectarse y gestionar PostgreSQL de manera gráfica, es la más utilizada. 202 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

203 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Referencias de interés [Axis]: [DBOWL]: [DIG]: [DLDB-OWL]: [Eclipse]: [FaCT++]: [IBM-SOR]: [instancestore]: [IRIS]: [Jena]: [OntoDB]: [OWL]: [OWL-S]: [OWLIM]: [Pellet]: [PostgreSQL]: [Protégé]: [RDF]: [SemanticWeb]: [SPARQL]: [Stardog]: [W3C]: [WSMO]: [WSMO-Studio]: [WSMT]: Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 203

204 Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Apéndices 13.4 Hoja de Decisiones del cambio Servicios Web Semánticos Diseño Utilizar el modelo vcasem y vcatalog como referencia: Debido a que se tenía que implementar una ontología para ofrecer servicios web semánticos que ya se estaban ofreciendo se decidió usar el mismo modelo existente traducido a una tecnología semántica. Cerrar el proyecto por inviabilidad del mismo: Tras un tiempo de trabajo con la tecnología, se desechó continuar por esta vía debido a que la capa semántica que envolvía al modelo no aportaba la suficiente semántica para ejecutar razonamientos sobre él. Generación de instancias dinámicamente: Debido a la naturaleza de la aplicación, se ha decidido generar las instancias de la ontología de forma dinámica, esto es debido a que los servicios web crean nuevas instancias y se han de hacer semánticas también. Para llevarlo a cabo se utilizará reflectividad Tecnológicas WSML: Se decidió utilizar en un principio WSML por que parecía que era la tecnología sobre la que apoyar los desarrollos semánticos más innovadora pues extendía una plataforma completa sobre ella (Descubrimiento de Servicios Web, Máquina de ejecución de Servicios Web y Herramienta de Desarrollo para esos mismos Servicios). OWL: Tras llevar un tiempo de desarrollo con WSML, se tuvo que cambiar la tecnología para definir la ontología con lo que hubo que migrar el trabajo hecho de WSML a OWL teniendo que habituarse a otro entorno de desarrollo y a otro lenguaje. Este cambio es debido a la Administración Pública Española (BOE-A ) que en su Norma Técnica de Interoperabilidad de Catálogo de Estándares decidió que para utilizar ontologías, se debía utilizar OWL y para los Servicios Web Semánticos OWL-S. Stardog: Se decidió utilizar esta base de datos en su versión de prueba para comprobar que realmente funcionaban las bases de datos para el almacenamiento de instancias de ontologías debido a lo poco evolucionada que está la tecnología semántica en general. Apache Jena: Como framework para utilizar ontologías y OWL concretamente desde Java, se ha decidido utilizar esta herramienta puesto que es la referencia en estos casos. Además también incluye un módulo SDB para persistir la ontología con sus instancias en una base de datos relacional. PostgreSQL: Se decidió utilizar PostgreSQL por ser la habitual en el C1Nn y por necesitarse con SDB pues genera una serie de tablas para montar su estructura y persistir la ontología. 204 Daniel Machado Fernández Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo

205 Apéndices Plataforma para Interoperabilidad de sistemas de información dentro de un mismo ámbito organizativo Servicios Web Unificados Diseño Cambio de modelo, cambio de arquitectura: Al cambiar el modelo que se tenía pensado originalmente, también se decidió un cambio de arquitectura. Ahora tendríamos algo de este tipo: Un módulo registrador, donde las universidades deberán registrarse junto con su WSDL. Un módulo intermediario o recolector que recogerá los datos de todos los servicios web registrados. Máster en Ingeniería Web - Centro Internacional de Postgrado - Universidad de Oviedo Daniel Machado Fernández 205

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012 TFC J2EE Aplicación Web para la gestión de facturación de una empresa de cerrajería Sara Gutiérrez Melero ITIG Junio de 2012 Consultor: Jose Juan Rodriguez Índice 1. Introducción Objetivos Planificación

Más detalles

Tema 5. Plataforma Java EE

Tema 5. Plataforma Java EE Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs enero 2009 FJRP, FMBR 2008/09 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise

Más detalles

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Página 1 de 23 Índice del Documento 1.- Introducción... Página 4 2.- Propuesta

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

Capítulo III. Análisis y diseño.

Capítulo III. Análisis y diseño. Capítulo III. Análisis y diseño. 3.1 Análisis. El análisis es el intermediario entre los requisitos del sistema y el diseño, esta sección definiremos el análisis con una serie de modelos técnicos del sistema,

Más detalles

Trabajo Final de Graduación para optar por el título. Bachiller en Ingeniería en Computación

Trabajo Final de Graduación para optar por el título. Bachiller en Ingeniería en Computación Trabajo Final de Graduación para optar por el título Bachiller en Ingeniería en Computación Migración del Módulo de Inventario del Sistema Business Advance Víctor Guzmán Alfaro Carrera Ingeniería en Computación

Más detalles

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el Capitulo II. Análisis de herramientas y tecnologías de desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el lenguaje de Modelo de Objetos llamado UML (Unified

Más detalles

Introducción a Javato

Introducción a Javato Introducción a Javato Fº. Javier Pereñiguez Steria Iberica 20/02/2008 Índice Introducción Arquitectura Ejemplo arquitectura Plataforma Desarrollo Ejemplo de entorno de desarrollo Vías futuras Casos de

Más detalles

http://www.cem.itesm.mx/extension/ms

http://www.cem.itesm.mx/extension/ms Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

Indizen Labs imade. Marco de Desarrollo Aplicaciones de Indizen

Indizen Labs imade. Marco de Desarrollo Aplicaciones de Indizen Indizen Labs imade Marco de Desarrollo Aplicaciones de Indizen Índice de contenidos Indizen Labs Introducción a imade Metodología imade Arquitectura imade Herramientas imade Indizen Labs Indizen Labs Son

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA... 7 Tarea DSI 1.1: Definición de Niveles de Arquitectura... 9 Tarea DSI

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA...7 Tarea DSI 1.1: Definición de Niveles de Arquitectura...9 Tarea DSI 1.2:

Más detalles

Ciclo Formativo de Grado Superior Desarrollo de Aplicaciones Web

Ciclo Formativo de Grado Superior Desarrollo de Aplicaciones Web Ciclo Formativo de Grado Superior Desarrollo de Aplicaciones Web Proyecto Propio de Ampliación con Programación de Dispositivos Móviles e Inteligentes Paseo de la Puerta del Ángel, s/n 28011 Madrid www.iesellago.net

Más detalles

Anexo 4 Documento de Arquitectura

Anexo 4 Documento de Arquitectura Anexo 4 Documento de Arquitectura 1. Introducción El anexo se describe el propósito y alcance referentes al proyecto correspondiente al documento de arquitectura. 2. Propósito El propósito del anexo de

Más detalles

Tema 5. Plataforma Java EE

Tema 5. Plataforma Java EE Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs septiembre 2011 FJRP, FMBR 2008-2011 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise

Más detalles

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo. GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.

Más detalles

Rafael Doña Gil. Enginyeria Tècnica en Informàtica de Sistemes. Consultor: Jose Juan Rodríguez

Rafael Doña Gil. Enginyeria Tècnica en Informàtica de Sistemes. Consultor: Jose Juan Rodríguez Rafael Doña Gil Enginyeria Tècnica en Informàtica de Sistemes Consultor: Jose Juan Rodríguez 14 de Enero de 2013 Contenido 1. Introducción 2. Análisis funcional 3. Diseño Técnico 4. Implementación 5. Conclusiones

Más detalles

Arquitectura Java para el Cuarto Ejercicio. José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático

Arquitectura Java para el Cuarto Ejercicio. José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático Arquitectura Java para el Cuarto Ejercicio José Antonio Ruano Ampudia Técnico Superior de Proyecto Informático Sumario Introducción Arquitectura en n-capas Arquitectura y el Cuarto Examen Java y su modelo

Más detalles

Para el desarrollo de aplicaciones Web se han generado múltiples tecnologías entre ellas se encuentran:

Para el desarrollo de aplicaciones Web se han generado múltiples tecnologías entre ellas se encuentran: Desarrollo de aplicaciones y servicios web Cinxgler Mariaca Minda Cinxgler@udistrital.edu.co Presidente Capítulo de Computadores Rama IEEE Universidad Distrital Francisco José de Caldas Resumen: Este articulo

Más detalles

PLIEGO DE PRESCRIPCIONES TÉCNICAS DEL PROCEDIMIENTO SIMPLIFICADO PARA LA CONTRATACIÓN DE LOS SERVICIOS DE UNA EMPRESA PARA la INTEGRACIÓN DE

PLIEGO DE PRESCRIPCIONES TÉCNICAS DEL PROCEDIMIENTO SIMPLIFICADO PARA LA CONTRATACIÓN DE LOS SERVICIOS DE UNA EMPRESA PARA la INTEGRACIÓN DE PLIEGO DE PRESCRIPCIONES TÉCNICAS DEL PROCEDIMIENTO SIMPLIFICADO PARA LA CONTRATACIÓN DE LOS SERVICIOS DE UNA EMPRESA PARA la INTEGRACIÓN DE CONTENIDOS DE LA WEB DEL INSTITUTO DE CRÉDITO OFICIAL EN UN

Más detalles

Capitulo III. Diseño del Sistema.

Capitulo III. Diseño del Sistema. Capitulo III. Diseño del Sistema. Para el desarrollo del sistema en la presente tesis se utilizo el paradigma orientado a objetos utilizando el lenguaje Java en su versión 1.2. Por medio de este lenguaje

Más detalles

Programación y Arquitectura

Programación y Arquitectura Programación y Arquitectura Proyecto Santos es una aplicación web que usa múltiples APIs i Java EE 7: La tecnología JavaServer Faces ii, incluyendo Ajax Contextos y la inyección de dependencias para la

Más detalles

BackflipSD Modelo de Diseño

BackflipSD Modelo de Diseño BackflipSD Modelo de Diseño Historia de revisiones: Fecha Versión Descripción Autor 04/09/2012 1.0 Rodrigo Stecanella 16/09/2012 1.1 Rodrigo Stecanella 1 Contenido Historia de revisiones:...1 Introducción...3

Más detalles

Sistema de aprendizaje por refuerzo para la mejora del rendimiento del alumno en prácticas

Sistema de aprendizaje por refuerzo para la mejora del rendimiento del alumno en prácticas Memoria resumen del Proyecto de Innovación Docente (PID) Ref.: 52B (periodo 2009-2011) Sistema de aprendizaje por refuerzo para la mejora del rendimiento del alumno en prácticas Investigador Principal:

Más detalles

Documento Técnico Gerardo Barcia Jonathan Trujillo María Alejandra Uribe

Documento Técnico Gerardo Barcia Jonathan Trujillo María Alejandra Uribe Documento Técnico Gerardo Barcia Jonathan Trujillo María Alejandra Uribe Índice de contenido 1. Introducción...3 2. El modelo de negocio...3 2.1 Antecedentes...3 2.2 Planteamiento del problema actual...3

Más detalles

ARQUITECTUA DE M2M MIGUEL ÁLVAREZ Y CLARA HERRERO. Documento inicial

ARQUITECTUA DE M2M MIGUEL ÁLVAREZ Y CLARA HERRERO. Documento inicial Título ARQUITECTUA DE M2M Proyecto Monkey to Monkey ( M 2 M ) Equipo Proyectos Informáticos Versión 1.0 Código PLAN_M2M_2012_04_01 Fecha 19/04/2012 Autores MIGUEL ÁLVAREZ Y CLARA HERRERO Estado Documento

Más detalles

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios Diplomado Java Descripción El lenguaje de programación Java es uno de los más utilizados hoy en día. Su potencia, simplicidad, funcionalidad y capacidad hacen que este lenguaje sea una de las herramientas

Más detalles

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Página 1 de 21 CUALIFICACIÓN DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC154_3 Versión 5 Situación RD 1087/2005 Actualización

Más detalles

UNIVERSIDAD TECNOLÓGICA PRIVADA DE SANTA CRUZ FACULTAD DE CIENCIAS Y TECNOLOGIA. CARRERA: Ingeniería en Sistemas

UNIVERSIDAD TECNOLÓGICA PRIVADA DE SANTA CRUZ FACULTAD DE CIENCIAS Y TECNOLOGIA. CARRERA: Ingeniería en Sistemas UNIVERSIDAD TECNOLÓGICA PRIVADA DE SANTA CRUZ FACULTAD DE CIENCIAS Y TECNOLOGIA CARRERA: Ingeniería en Sistemas Perfil de Tesis para Proyecto Empresarial Aplicación para mejorar la evaluación del desempeño

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

Introducción a AJAX y visión global de la práctica

Introducción a AJAX y visión global de la práctica Introducción a AJAX y visión global de la práctica Modelo de aplicaciones Web clásico (1) La mayor parte de las interacciones del usuario causan una petición HTTP al servidor Web El servidor Web procesa

Más detalles

Eduardo Casitas. Summary. Skills. Blog: http://lasombradelpigmeo.blogspot.com

Eduardo Casitas. Summary. Skills. Blog: http://lasombradelpigmeo.blogspot.com Eduardo Casitas Blog: http://lasombradelpigmeo.blogspot.com Summary EXPERIENCIA: Desarrollo de Aplicaciones Java EE, Business Intelligence, Datawarehouse, Administración de Sistemas, Gestión de equipos

Más detalles

Tema 47. Las herramientas ofimáticas. Integración con sistemas de información estructurada.

Tema 47. Las herramientas ofimáticas. Integración con sistemas de información estructurada. Tema 47. Las herramientas ofimáticas. Integración con sistemas de información estructurada. Esquema Introducción... 2 Historia... 2 Suites... 2 Herramientas ofimáticas... 3 Tipos de programas ofimáticos:...

Más detalles

Plataforma de expediente Electrónico @DOC

Plataforma de expediente Electrónico @DOC MINISTERIO DE LA PRESIDENCIA SUBSECRETARÍA SUBDIRECCIÓN GENERAL DE TECNOLOGÍAS Y SERVICIOS DE LA INFORMACIÓN Plataforma de expediente Electrónico @DOC Arquitectura de Sistemas Control de versiones Versión

Más detalles

Aplicaciones web construidas a base de componentes:

Aplicaciones web construidas a base de componentes: Java EE Aplicaciones Web/Sistemas Web Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Facultad de Informática Universidad Complutense Madrid Material bajo licencia Creative Commons

Más detalles

WORKSHOP Spring Framework Developer

WORKSHOP Spring Framework Developer CONTEXTO WORKSHOP Spring Framework Developer La programación de los componentes de persistencia es una tarea muy importante, hoy en día contamos con Frameworks JDBC como MyBatis, Frameworks ORM como Hibernate

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software MSDN Ingeniería de Software...1 Ingeniería del Software_/_ Ingeniería y Programación...1 Análisis de Requerimientos...2 Especificación...3 Diseño...4 Desarrollo en Equipo...5 Mantenimiento...6

Más detalles

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Unidad Académica Base de Datos SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Integrantes: Fidel Gil

Más detalles

Licencia 2: (Creative Commons)

Licencia 2: (Creative Commons) Licencia 2: (Creative Commons) Esta obra está bajo una licencia Reconocimiento-No comercial-sin obras derivadas 2.5 España de Creative Commons. Puede copiarlo, distribuirlo y transmitirlo públicamente

Más detalles

ARQUITECTURAS ORIENTADAS A SERVICIOS. SOA en la Seguridad Social. 48 boletic

ARQUITECTURAS ORIENTADAS A SERVICIOS. SOA en la Seguridad Social. 48 boletic ARQUITECTURAS ORIENTADAS A SERVICIOS SOA en la Seguridad Social por Mario triguero garrido 48 boletic El deber de ofrecer al ciudadano el mejor servicio ha sido siempre la motivación por la cual la Gerencia

Más detalles

TFC J2EE. Tienda Online:WebCine

TFC J2EE. Tienda Online:WebCine TFC J2EE Tienda Online:WebCine Jose Luis Del Hoyo Fernández Consultor: Antoni Oller Arcas 13/01/2014 Índice del contenido 1. Introducción... 4 1.1 Descripción del proyecto... 4 1.2 Objetivos... 4 1.3

Más detalles

MASTER JAVA AVANZADO Master en desarrollo de aplicaciones avanzadas con JAVA 2008

MASTER JAVA AVANZADO Master en desarrollo de aplicaciones avanzadas con JAVA 2008 Master en desarrollo de aplicaciones avanzadas con JAVA 2008 1 de 6 Spring Framework 30 horas Los alumnos necesitarán tener experiencia con el lenguaje de programación Java, así como del Api JDBC. Se recomienda

Más detalles

Conceptos de Orquestador O2 EMPRESAS TUXPAN www.tuxpan.com

Conceptos de Orquestador O2 EMPRESAS TUXPAN www.tuxpan.com EMPRESAS TUXPAN www.tuxpan.com AÑO 2007 INDICE DE CONTENIDO 1 Software de Servicios y Orquestación de Procesos 2 1.1.1 Introducción 2 1.1.2 Software de Orquestación como Integrador 3 1.1.3 Automatización

Más detalles

www.microsoft.com/office/sharepointserver www.abd.es Contenido empresarial administrado en una interfaz de usuario basada en Web.

www.microsoft.com/office/sharepointserver www.abd.es Contenido empresarial administrado en una interfaz de usuario basada en Web. Microsoft Office SharePoint Server 2007 es un conjunto integrado de características de servidor que puede contribuir a mejorar la eficacia organizativa al ofrecer completas funciones de administración

Más detalles

Facultad de Sistemas e Informática

Facultad de Sistemas e Informática Escuela Politécnica del Ejército Sede Latacunga Facultad de Sistemas e Informática Galarza Maira Tapia Cevallos Paulina DESARROLLO DE APLICACIONES DISTRIBUIDAS UTILIZANDO PATRONES DE DISEÑO MODELO/VISTA

Más detalles

Projecte/Treball Fi de Carrera

Projecte/Treball Fi de Carrera Projecte/Treball Fi de Carrera Estudi: Eng. Tècn. Informàtica de Gestió. Pla 2001 Títol: Catalogador de música MP3 y reproductor de música vía Web con búsquedas de música basadas en la definición de unas

Más detalles

UNIVERSIDAD DE OVIEDO

UNIVERSIDAD DE OVIEDO UNIVERSIDAD DE OVIEDO ESCUELA POLITÉCNICA DE INGENIERÍA DE GIJÓN MÁSTER EN INGENIERÍA INFORMÁTICA TRABAJO FIN DE MÁSTER SPRING ROO ADD-ONS PARA PROTOTIPADO RÁPIDO JAVIER MENÉNDEZ ÁLVAREZ JULIO 2014 UNIVERSIDAD

Más detalles

Programación en Capas.

Programación en Capas. Programación en Capas. Ricardo J. Vargas Del Valle Universidad de Costa Rica, Ciencias de Computación e Informática, San José, Costa Rica, 506 ricvargas@gmail.com Juan P. Maltés Granados Universidad de

Más detalles

SOLUCIONES DE DESARROLLO JAVA PARA LAS APLICACIONES DE LA COMUNIDAD DE MADRID

SOLUCIONES DE DESARROLLO JAVA PARA LAS APLICACIONES DE LA COMUNIDAD DE MADRID SOLUCIONES DE DESARROLLO JAVA PARA LAS APLICACIONES DE LA COMUNIDAD DE MADRID Versión 1.2 Julio 2010 Página: 1 CONTROL DE CAMBIOS Fecha Versión Cambios 01/01/2006 1.0 Primera versión 11/09/2008 1.1 Se

Más detalles

Centro de Interoperabilidad Semántica y Sistema de Gestión de Mensajes de Intercambio

Centro de Interoperabilidad Semántica y Sistema de Gestión de Mensajes de Intercambio Centro de Interoperabilidad Semántica y Sistema de Gestión de Mensajes de Intercambio Francisco José Martín Lázaro franciscojose.martin@map.es Consejero Tecnológico de Normas de Tecnología. Ministerio

Más detalles

Curso de Java EE Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1

Curso de Java EE Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1 1 Los Enterprise Java Beans (EJB) es código Java del lado del Servidor. Normalmente tienen la lógica de negocio de nuestra aplicación, y por lo tanto cubren el rol de la capa de servicio de nuestras aplicaciones

Más detalles

Requisitos técnicos para la instalación. Arquitectura Hardware Arquitectura Software. Instrucciones de instalación GONG-R

Requisitos técnicos para la instalación. Arquitectura Hardware Arquitectura Software. Instrucciones de instalación GONG-R v 3 Junio 2015 ÍNDICE Introducción Requisitos técnicos para la instalación Arquitectura Hardware Arquitectura Software Instrucciones de instalación Instalación módulo GONG2 Instalación módulo eporte Instrucciones

Más detalles

Gestión de Incidencias

Gestión de Incidencias Gestión de Incidencias Alumno: José Aguilera Deixt Consultor: José Juan Rodríguez Introducción Objetivos Planificación Tecnologías Resumen funcional Diseño Producto Conclusión Mejoras para futuras versiones

Más detalles

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA DIPLOMATURA DESARROLLO DE APLICACIONES JAVA Contenidos MÓDULO UNO: Características del Lenguaje. OOP Reconocer las características del lenguaje Java y sus componentes. Distinguir la similitudes y diferencias

Más detalles

Práctica Java POJO de Integración de Sistemas Sitio Web de Apuestas Deportivas

Práctica Java POJO de Integración de Sistemas Sitio Web de Apuestas Deportivas Práctica Java POJO de Integración de Sistemas Sitio Web de Apuestas Deportivas Curso académico 2009-2010 1 Introducción La práctica de Integración de Sistemas consistirá en el diseño e implementación de

Más detalles

CONSTRUCCIÓN DE PORTALES

CONSTRUCCIÓN DE PORTALES Curso «Los portales de internet». Fac. Documentación. Universidad de Murcia. 29 CONSTRUCCIÓN DE PORTALES Juan Antonio Pastor Sánchez 1. Introducción La Gestión de los contenidos informativos de los portales

Más detalles

FORMACION CONSULTORIA. Tu socio tecnológico. w.w.w.geamind.es

FORMACION CONSULTORIA. Tu socio tecnológico. w.w.w.geamind.es FORMACION CONSULTORIA Tu socio tecnológico w.w.w..es Índice Indice Presentación corporativa Oferta formativa Carreras profesionales Business Intelligence Servicios de Consultoría Outsourcing Tecnológico

Más detalles

Desarrollo de Rich Entreprise Applications con Flex

Desarrollo de Rich Entreprise Applications con Flex Desarrollo de Rich Entreprise Applications con Flex Desarrollo de Rich Entreprise Applications con Flex Aplicaciones empresariales orientadas a web. Qué hemos ganado con las aplicaciones web Total ubicuidad.

Más detalles

Tema 1: Introducción a las Tecnologías Java

Tema 1: Introducción a las Tecnologías Java Tema 1: Introducción a las Tecnologías Java Índice Características de las aplicaciones empresariales Tecnologías Java Alternativas a las tecnologías Java XML Material de clase Características de las aplicaciones

Más detalles

Curso de Spring Framework

Curso de Spring Framework Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Spring es un proyecto de código abierto (open source), originalmente creado por Rod Johnson y descrito en su

Más detalles

Introducción CAPÍTULO 1

Introducción CAPÍTULO 1 Introducción CAPÍTULO 1 6 CAPÍTULO 1 - Introducción. En la actualidad hay una gran cantidad de repositorios en los que se puede alojar código fuente para poder compartirlo con los usuarios que visiten

Más detalles

CAPITULO 1. Introducción a los Conceptos Generales de Bases de Datos Distribuidas

CAPITULO 1. Introducción a los Conceptos Generales de Bases de Datos Distribuidas CAPITULO 1 Introducción a los Conceptos Generales de 1.1 Preliminares Las empresas necesitan almacenar información. La información puede ser de todo tipo. Cada elemento informativo es lo que se conoce

Más detalles

Universidad Autónoma Metropolitana

Universidad Autónoma Metropolitana Universidad Autónoma Metropolitana Unidad Azcapotzalco División de Ciencias Básicas e Ingeniería Licenciatura en Ingeniería en Computación Propuesta de Proyecto Terminal Composición de servicios web para

Más detalles

estimada del tutor de HP Este proyecto permitirá adquirir los conocimientos necesarios para crear aplicaciones web, usando

estimada del tutor de HP Este proyecto permitirá adquirir los conocimientos necesarios para crear aplicaciones web, usando Tutor de la Universidad contenido del Área o grupo al que realización del Requisitos necesarios a nivel de conocimientos del Aplicación Web para la gestión remota de equipos hardware Guillermo Santos /

Más detalles

Capítulo I. Marco Teórico

Capítulo I. Marco Teórico 1 Capítulo I. Marco Teórico 1. Justificación Hoy en día existe una gran diversidad de aplicaciones que corren sobre la World Wide Web (WWW o Web), y cada una orientada a un fin en particular, el cuál depende

Más detalles

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R índice Módulo A Unidad didáctica 1: Introducción a las Bases de Datos Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos 3 19 Módulo B Unidad didáctica 1: Fase de análisis de requisitos Modelo

Más detalles

CMS, Repositorios y Gestores de Portales.

CMS, Repositorios y Gestores de Portales. CMS, Repositorios y Gestores de Portales. En el mundo de la programación estamos acostumbrados a que la mayoría de los avances que se realizan vayan orientados a simplificar el desarrollo de proyectos.

Más detalles

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web Secretaría de Planificación Estratégica Oficina de Informática Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web VERSIÓN 4 Julio 2009 Índice 1. Generalidades... 3 1.1

Más detalles

DESARROLLO DE COMPONENTES PARA LA INTEGRACIÓN DEL PORTAL CORPORATIVO DEL CITI CON LA BPMS BIZAGI

DESARROLLO DE COMPONENTES PARA LA INTEGRACIÓN DEL PORTAL CORPORATIVO DEL CITI CON LA BPMS BIZAGI DESARROLLO DE COMPONENTES PARA LA INTEGRACIÓN DEL PORTAL CORPORATIVO DEL CITI CON LA BPMS BIZAGI Informe de Práctica Profesional de 4to Año, Ingeniería Informática Autor: Manuel Alejandro Aguilar Díaz

Más detalles

Copyright 2015 Endalia, S.L. Todos los derechos reservados.

Copyright 2015 Endalia, S.L. Todos los derechos reservados. Copyright 2015 Endalia, S.L. Todos los derechos reservados. Este documento contiene información propietaria de Endalia, S.L. Se emite con el único propósito de informar proyectos Endalia, por lo que no

Más detalles

P1 Elaboración de un plan de proyecto utilizando MS Project G3

P1 Elaboración de un plan de proyecto utilizando MS Project G3 UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA P1 Elaboración de un plan de proyecto utilizando MS Project G3 José Luís Espinosa Aranda Noelia Vállez Enano Manuel Ramón Guerrero Álvarez

Más detalles

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA Cursos CIÓN DE APLICACIONES CON JAVA OBJETIVOS Los cursos ofrecen al alumno fundamentos muy sólidos en la Plataformas de desarrollo Java, no solo en aspectos concretos (lenguaje java, paquetes disponibles,

Más detalles

DOCUMENTACION A PRESENTAR: TRABAJADORES (RÉGIMEN GENERAL, ADMINISTRACIÓN PÚBLICA, AUTÓNOMOS) DEMANDANTES DE EMPLEO

DOCUMENTACION A PRESENTAR: TRABAJADORES (RÉGIMEN GENERAL, ADMINISTRACIÓN PÚBLICA, AUTÓNOMOS) DEMANDANTES DE EMPLEO MF0492_3 PROGRAMACION WEB EN EL ENTORNO SERVIDOR (IFCD0210: DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB) 240 HORAS PRESENCIALES Nº DE EXPEDIENTE: FC/2013/0064 ACCION 217 GRUPO 1 ACCIÓN FORMATIVA FINANCIADA

Más detalles

Capítulo II. Arquitectura del Software

Capítulo II. Arquitectura del Software Capítulo II. Arquitectura del Software Después de un cuidadoso análisis de los objetivos del proyecto, se determinó que la mejor manera de estructurar el sistema era haciendo uso del muy famoso patrón

Más detalles

PROGRAMA FORMATIVO Desarrollo de aplicaciones JAVA (Programador JAVA)

PROGRAMA FORMATIVO Desarrollo de aplicaciones JAVA (Programador JAVA) PROGRAMA FORMATIVO Desarrollo de aplicaciones JAVA (Programador JAVA) Fecha DATOS GENERALES DE LA ESPECIALIDAD 1. Familia Profesional: Informática y Comunicaciones Área Profesional: Desarrollo 2. Denominación:

Más detalles

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Vivimos en un mundo globalizado, donde la eficiencia y productividad de las empresas es un factor crucial para

Más detalles

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE Versión 1.8 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de usuario del

Más detalles

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

Más detalles

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR En este capítulo se describe el análisis y diseño de un sistema, denominado e-commerce Constructor, el cual cumple con los siguientes objetivos: Fungir

Más detalles

UNIVERSIDAD DE OVIEDO

UNIVERSIDAD DE OVIEDO UNIVERSIDAD DE OVIEDO ESCUELA DE INGENIERÍA INFORMÁTICA TRABAJO DE FIN DE MÁSTER GESTIÓN DE INCIDENCIAS Y CONTRATOS VÍA WEB PARA LA EMPRESA ECOCOMPUTER DIRECTOR: Lourdes Tajes Martinez V o B o del Director

Más detalles

Certificaciones: Diploma de Aprobación en Desarrollo Web con Java.

Certificaciones: Diploma de Aprobación en Desarrollo Web con Java. DIPLOMATURA EN DESAR ROLLO DE APLICACIONE S WEB CON JAVA PARTE I: OBJETIVOS ESPECÍFICOS La Diplomatura en Desarrollo de Aplicaciones Web con Java tiene los siguientes objetivos específicos: Adquirir habilidad

Más detalles

con certif icado de profesionalidad

con certif icado de profesionalidad CARACTERÍSTICAS El diseño web está cambiando en poco tiempo. Las nuevas tecnologías y estándares de programación están revolucionando tanto la forma de crear web como de interactuar con ellas. En nuestro

Más detalles

BOLETÍN DE NOVEDADES Barcelona, Julio de 2011

BOLETÍN DE NOVEDADES Barcelona, Julio de 2011 BOLETÍN DE NOVEDADES Barcelona, Julio de 2011 Introducción El objeto de este documento es presentar y describir brevemente actuaciones realizadas en los últimos meses por Carver en algunos de sus clientes,

Más detalles

Experiencias con J2EE

Experiencias con J2EE Experiencias con J2EE Carlos Luna García Project Manager J2EE carlos.luna@sistel.es Presentación corporativa (1)! Presentación de la compañía.» Sistel es una compañía de integración y desarrollo de sistemas

Más detalles

PLIEGO DE PRESCRIPCIONES TÉCNICAS ÍNDICE 1. OBJETO... 2 2. ANTECEDENTES Y SITUACIÓN ACTUAL... 2

PLIEGO DE PRESCRIPCIONES TÉCNICAS ÍNDICE 1. OBJETO... 2 2. ANTECEDENTES Y SITUACIÓN ACTUAL... 2 PROCEDIMIENTO NEGOCIADO SIN PUBLICIDAD PARA LA ADJUDICACIÓN DEL CONTRATO DE SERVICIOS PARA EL DESARROLLO DE COMPONENTES PARA LAS APLICACIONES DE ADMINISTRACIÓN ELECTRÓNICA DEL SENADO PLIEGO DE PRESCRIPCIONES

Más detalles

Aproximando el e-learning a la gestión. Barcelona 8 y 9 de Noviembre de 2010

Aproximando el e-learning a la gestión. Barcelona 8 y 9 de Noviembre de 2010 Aproximando el e-learning a la gestión Barcelona 8 y 9 de Noviembre de 2010 Quiénes somos? Nuestras soluciones Aproximación al e-learning El proyecto La implementación 2 Quiénes somos? Nuestras soluciones

Más detalles

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS Resultados de aprendizaje y criterios de evaluación 1. Identificar la estructura y organización

Más detalles

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web Secretaría de Planificación Estratégica Oficina de Informática Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web VERSIÓN 3 Abril 2006 Índice 1. Generalidades... 3 1.1

Más detalles

Resumen. Abstract 1. INTRODUCCIÓN

Resumen. Abstract 1. INTRODUCCIÓN ANÁLISIS Y PLANEAMIENTO ESTRATÉGICO PARA INTEGRAR MÓDULO DE PRODUCTOS DE UN SISTEMA LOCAL A INTERNET UTILIZANDO FIREWALL EN LINUX Y WEB SERVICE EN PHP / SQL SERVER PARA ALMACENES ESTUARDO SÁNCHEZ - ALESSA

Más detalles

Subdirección General de Tecnologías y Sistemas de Información Descripción de la Plataforma

Subdirección General de Tecnologías y Sistemas de Información Descripción de la Plataforma Descripción de la Plataforma Octubre 2014 Descripción y objetivos Normativa aplicable Catálogo de servicios Integración con sistemas externos Consola de Administración Aplicaciones cliente integradas con

Más detalles

Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP (Online)

Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP (Online) Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP (Online) Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP (Online) Duración: 300 horas Precio: 200 * Modalidad:

Más detalles

UNA EXPERIENCIA PRÁCTICA DE INTEGRACIÓN DE SISTEMAS HETEROGÉNEOS DIRIGIDA POR MODELOS

UNA EXPERIENCIA PRÁCTICA DE INTEGRACIÓN DE SISTEMAS HETEROGÉNEOS DIRIGIDA POR MODELOS UNA EXPERIENCIA PRÁCTICA DE INTEGRACIÓN DE SISTEMAS HETEROGÉNEOS DIRIGIDA POR MODELOS Gerente de Informática de Diputación IZFE, S.A. (Diputación Foral de Gipuzkoa) Analista IZFE, S.A. (Diputación Foral

Más detalles

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB DENOMINACIÓN: CON TECNOLOGÍAS WEB Código: IFCD0210 Familia profesional: Informática y Comunicaciones Área profesional: Desarrollo Nivel de cualificación profesional: 3 Cualificación profesional de referencia:

Más detalles

Curso Java Curso Online Analista Programador Java

Curso Java Curso Online Analista Programador Java Curso Java Curso Online Analista Programador Java Academia Mañana Paseo de la Castellana, 51 - Madrid 28046 Programa General Curso de Java Módulo Uno - Programación Java Básica 1) Programación Java Básico

Más detalles

JavaEE. www.javasoft.com

JavaEE. www.javasoft.com JavaEE Java Enterprise Edition www.javasoft.com Por qué Java en el servidor? Ventajas Independencia de la plataforma portabilidad Gran conjunto de APIs Reusabilidad y modularidad Seguro en la ejecución

Más detalles

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado Centro de Capacitación en Tecnologías de la Información Desarrollo de Objetivo Dotar al alumno de la metodología y los fundamentos de la programación en Java usando la plataforma J2SE (Java 2 Standard

Más detalles

El Framework de desarrollo del Consejo

El Framework de desarrollo del Consejo El Framework de desarrollo del Consejo Superior de Investigaciones Científicas Director de la OPCSIC Centro Técnico de Informática (CSIC) Directora Centro Técnico de Informática (CSIC) Palabras clave Framework,

Más detalles