UNIVERSIDAD DE GUAYAQUIL FACULTAD DE …repositorio.ug.edu.ec/bitstream/redug/11495/1/PTG-B-CISC 929...
-
Upload
phungthuan -
Category
Documents
-
view
216 -
download
1
Transcript of UNIVERSIDAD DE GUAYAQUIL FACULTAD DE …repositorio.ug.edu.ec/bitstream/redug/11495/1/PTG-B-CISC 929...
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS
COMPUTACIONALES
ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE
TRABAJO PARA PROYECTOS DE TITULACIÓN APLICANDO
METODOLOGÍAS SCRUM EN LA INGENIERÍA DE SOFTWARE”
ENFOCADO A ARQUITECTURA CAPA DE NEGOCIO E
IMPLEMENTAR UN SERVICIO WEB SOAP DESTINADO
A PROCESAR CONSULTAS SQL Y FACILITAR UNA
PLATAFORMA DE EVALUACIÓN DE
CALIDAD DE CÓDIGO
PROYECTO DE TITULACIÓN
Previa a la obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
RICARDO ROBERTO COELLO QUEZADA
TUTOR: LSI. OSCAR APOLINARIO
GUAYAQUIL – ECUADOR 2016
REPOSITORIO NACIONAL EN CIENCIAS Y TECNOLOGÍA
FICHA DE REGISTRO DE TESIS
TÍTULO “ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE TRABAJO PARA
PROYECTOS DE TITULACIÓN APLICANDO METODOLOGÍAS SCRUM EN LA INGENIERÍA DE
SOFTWARE” ENFOCADO A ARQUITECTURA CAPA DE NEGOCIO E IMPLEMENTAR UN SERVICIO WEB
SOAP DESTINADO A PROCESAR CONSULTAS SQL Y FACILITAR UNA PLATAFORMA DE EVALUACIÓN
DE CALIDAD DE CÓDIGO“
REVISORES:
INSTITUCIÓN: Universidad de Guayaquil FACULTAD: Ciencias Matemáticas y Físicas
CARRERA: Ingeniería en Sistemas Computacionales
FECHA DE PUBLICACIÓN: Marzo del 2016 N° DE PÁGS.: 71
ÁREA TEMÁTICA: Tecnologías, procesos y Desarrollo industrial
PALABRAS CLAVES: Servicio web SOAP, evaluación de calidad de código, Sonarqube, SQL, log, bitácora
de incidencias.
RESUMEN:
En la actualidad los organismos empresariales están en busca de mejoras a sus procesos de negocios,
explorando nuevas tecnologías del mercado que apoyen a la integración de sus Sistemas de Información
mediante herramientas de código abierto que puedan satisfacer las necesidades del cliente.
El proyecto científico reconoce la ubicación del problema y que pertenece al estudio de factibilidad para la
propuesta “Framework de trabajo para proyectos de titulación aplicando metodologías Scrum en la ingeniería
de software” enfocado a arquitectura capa de negocio e implementar un servicio web SOAP destinado a
procesar consultas SQL y facilitar una plataforma de evaluación de calidad de código, manifiesta la necesidad
de sostener una capa negocios que establezca la comunicación directa, eficaz y eficiente a través de la capa
de datos y visual, llevando reglas, procedimientos y estándares de calidad del desarrollo de software que
inicien desde la planificación del proyecto, dando seguimiento y monitoreo de las diversas incidencias y
sucesos que ocurran en la aplicación.
N° DE REGISTRO(en base de datos): N° DE CLASIFICACIÓN:
Nº
DIRECCIÓN URL (tesis en la web):
ADJUNTO PDF SI X
NO
CONTACTO CON AUTOR: Teléfono:
0988859847
E-mail:
CONTACTO DE LA INSTITUCIÓN Nombre:
II
APROBACIÓN DEL TUTOR
En mi calidad de Tutor del trabajo de titulación, “ESTUDIO DE FACTIBILIDAD
PARA LA PROPUESTA “FRAMEWORK DE TRABAJO PARA PROYECTOS DE
TITULACIÓN APLICANDO METODOLOGÍAS SCRUM EN LA INGENIERÍA DE
SOFTWARE” ENFOCADO A ARQUITECTURA CAPA DE NEGOCIO E
IMPLEMENTAR UN SERVICIO WEB SOAP DESTINADO A PROCESAR
COSNULTAS SQL Y FACILTAR UNA PLATAFORMA DE EVALUACIÓN DE
CALIDAD DE CÓDIGO“ elaborado por el Sr.
COELLO QUEZADA RICARDO ROBERTO, Alumno no titulado de la Carrera
de Ingeniería en Sistemas Computacionales, Facultad de Ciencias Matemáticas
y Físicas de la Universidad de Guayaquil, previo a la obtención del Título de
Ingeniero en Sistemas, me permito declarar que luego de haber orientado,
estudiado y revisado, la Apruebo en todas sus partes.
Atentamente
Lsi. Oscar Apolinario
VII
DEDICATORIA
Dedico este proyecto primero
a mi DIOS, a mis familiares,
amigos/as, compañeros/as, y
a todas aquellas personas
que me ayudaron con su
granito de arena para poder
llegar hacia la meta.
Ricardo Coello Quezada
VIII
AGRADECIMIENTO
Al distinguido docente que nos
dirigió y contribuyó con sus
conocimientos y experiencia
para la realización de este
proyecto de titulación.
De antemano muy agradecido:
LSI. Oscar Apolinario.
IX
TRIBUNAL PROYECTO DE TITULACIÓN
Ing. Eduardo Santos Baquerizo, MSc Ing. Inelda Martillo Alcívar, Mgs. DECANO DE LA FACULTAD DIRECTORA CIENCIAS MATEMÁTICAS Y CISC FISICAS
LSI. Oscar Apolinario Arzube, Msc. Ing. Jorge Chicala, Msc. TUTOR PROFESORA DEL ÁREA TRIBUNAL
Ab. Juan Chávez Atocha Lic. Pablo Alarcón Salvatierra, Msc. SECRETARIO PROFESOR DEL ÁREA
TRIBUNAL
X
DECLARACIÓN EXPRESA
“La responsabilidad del contenido de este
Proyecto de Titulación, me corresponden
exclusivamente; y el patrimonio intelectual
de la misma a la UNIVERSIDAD DE
GUAYAQUIL”
______________________________________
COELLO QUEZADA RICARDO ROBERTO
XI
.
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS
COMPUTACIONALES
ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE
TRABAJO PARA PROYECTOS DE TITULACIÓN APLICANDO
METODOLOGÍAS SCRUM EN LA INGENIERÍA DE SOFTWARE”
ENFOCADO A ARQUITECTURA CAPA DE NEGOCIO E
IMPLEMENTAR UN SERVICIO WEB SOAP DESTINADO
A PROCESAR CONSULTAS SQL Y FACILITAR UNA
PLATAFORMA DE EVALUACIÓN DE
CALIDAD DE CÓDIGO
Proyecto de Titulación que se presenta como requisito para optar por el
título de INGENIERO EN SISTEMAS COMPUTACIONALES
Autor: Coello Quezada Ricardo Roberto
C.I: 0950016279
Tutor: LSI. Oscar Apolinario
XII
CERTIFICADO DE ACEPTACIÓN DEL TUTOR
En mi calidad de Tutor del proyecto de titulación, nombrado por el Consejo
Directivo de la Facultad de Ciencias Matemáticas y Físicas de la Universidad de
Guayaquil.
CERTIFICO:
Que he analizado el Proyecto de Titulación presentado por el
estudiante COELLO QUEZADA RICARDO ROBERTO, como requisito previo
para optar por el título de Ingeniero en Sistemas Computacionales cuyo
problema es:
“ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE
TRABAJO PARA PROYECTOS DE TITULACIÓN APLICANDO
METODOLOGÍAS SCRUM EN LA INGENIERÍA DE SOFTWARE” ENFOCADO
A ARQUITECTURA CAPA DE NEGOCIO E IMPLEMENTAR UN SERVICIO
WEB SOAP DESTINADO A PROCESAR CONSULTAS SQL Y FACILITAR UNA
PLATAFORMA DE EVALUACIÓN DE CALIDAD DE CÓDIGO”.
Considero aprobado el trabajo en su totalidad.
Presentado por:
Coello Quezada Ricardo Roberto C.I 0950016279
Tutor: Lsi. Oscar Apolinario
Guayaquil, abril 2016
XIII
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
Autorización para Publicación de Proyecto de
Titulación en Formato Digital
1. Identificación del Proyecto de Titulación Nombre Alumno: RICARDO ROBERTO COELLO QUEZADA
Dirección: Duran Cdla. Primavera II Sector 1-A. Mz 9. V.6
Teléfono: 0988859847 E-mail: [email protected]
Facultad: Ciencias Matemáticas y Físicas
Carrera: Ingeniería en Sistemas Computacionales
Proyecto de titulación al que opta: Ingeniero en Sistemas Computacionales
Profesor tutor: Lsi. Oscar Apolinario
Título del Proyecto de titulación: “Estudio de factibilidad para la propuesta “framework de trabajo para proyectos de titulación aplicando metodologías Scrum en la ingeniería de software” enfocado a arquitectura capa de negocio” e implementar un servicio web SOAP destinado a procesar consultas SQL y facilitar una plataforma de evaluación de calidad de código.”
Tema del Proyecto de Titulación: Servicio web SOAP, calidad de código, Scrum, log, bitácora de incidencias.
2. Autorización de Publicación de Versión Electrónica del Proyecto de Titulación A través de este medio autorizo a la Biblioteca de la Universidad de Guayaquil y a la Facultad de Ciencias Matemáticas y Físicas a publicar la versión electrónica de este Proyecto de titulación.
Publicación electrónica:
Inmediata X Después de 1 año
Firma Alumno: 3. Forma de envío:
XIV
El texto del proyecto de titulación debe ser enviado en formato Word, como archivo .Doc. O .RTF y .Puf para PC. Las imágenes que la acompañen pueden ser: .gif, .jpg o .TIFF.
DVDROM X CDROM
XV
ÍNDICE GENERAL
APROBACIÓN DEL TUTOR ................................................................................ II
DEDICATORIA .................................................................................................. VII
AGRADECIMIENTO ......................................................................................... VIII
TRIBUNAL PROYECTO DE TITULACIÓN ......................................................... IX
DECLARACIÓN EXPRESA ................................................................................. X
CERTIFICADO DE ACEPTACIÓN DEL TUTOR ................................................ XII
Autorización para Publicación de Proyecto de Titulación en Formato Digital .... XIII
ÍNDICE GENERAL ........................................................................................... XV
ABREVIATURAS ........................................................................................... XVIII
SIMBOLOGÍA .................................................................................................. XIX
ÍNDICE DE CUADRO ....................................................................................... XX
ÍNDICE DE GRÁFICOS ................................................................................... XXI
Resumen ........................................................................................................ XXII
Abstract ......................................................................................................... XXIII
INTRODUCCIÓN ................................................................................................. 1
En el capítulo I ................................................................................................ 1
En el capítulo II: .............................................................................................. 1
En el capítulo III: ............................................................................................. 2
En el capítulo IV: ............................................................................................. 2
CAPÍTULO I ......................................................................................................... 3
EL PROBLEMA ............................................................................................... 3
Ubicación del Problema en un Contexto ..................................................... 3
Situación Conflicto Nudos Críticos .............................................................. 3
Causas y Consecuencias del Problema ...................................................... 4
Delimitación del Problema .......................................................................... 5
Formulación del Problema .......................................................................... 5
Evaluación del Problema ............................................................................ 6
OBJETIVOS .................................................................................................... 7
OBJETIVO GENERAL ................................................................................ 7
OBJETIVOS ESPECÍFICOS ....................................................................... 7
ALCANCES DEL PROBLEMA ........................................................................ 8
JUSTIFICACIÓN E IMPORTANCIA ............................................................... 9
Justificación Académica: ............................................................................. 9
METODOLOGÍA DEL PROYECTO ............................................................... 10
XVI
Metodología de desarrollo ágil Scrum ....................................................... 10
Plan de Calidad ............................................................................................. 11
CAPÍTULO II ...................................................................................................... 12
ANTECEDENTES DEL ESTUDIO ................................................................. 12
FUNDAMENTACIÓN TEÓRICA .................................................................... 12
PREGUNTA CIENTÍFICA A CONTESTARSE ............................................... 14
VARIABLES DE LA INVESTIGACION .......................................................... 14
Variable Independiente ............................................................................. 14
Variable Dependiente ............................................................................... 14
DEFINICIONES CONCEPTUALES ............................................................... 14
¿Qué son los servicios web? .................................................................... 14
Requerimientos para consumir un servicio web ........................................ 15
Principales Especificaciones de los servicios web .................................... 15
Un ejemplo de servicio Web ..................................................................... 15
WSDL ....................................................................................................... 19
UDDI ......................................................................................................... 19
Especificación de SOAP .......................................................................... 19
Un ejemplo sencillo de mensajes SOAP ................................................. 20
Ventajas y desventajas del servicio web ................................................. 21
Ventajas ................................................................................................... 21
Log ........................................................................................................... 22
Log4J ........................................................................................................ 22
Prioridades ............................................................................................... 22
Nivel de prioridad de traza ........................................................................ 23
¿Qué es Calidad? ..................................................................................... 25
¿Qué es la Calidad de Software? ............................................................. 25
¿Qué es Sonarqube? ............................................................................... 25
Métricas .................................................................................................... 27
Herramientas para el análisis de calidad de código por medio de Sonarqube ................................................................................................ 30
Sonar-runner ............................................................................................ 30
SCRUM .................................................................................................... 30
¿Dónde predomina el problema? .............................................................. 31
¿Cómo apoya Scrum a solucionar esto? .................................................. 31
Esencia ..................................................................................................... 31
Equipo ...................................................................................................... 32
Elementos de Scrum ................................................................................ 32
XVII
Burn down chart........................................................................................ 33
Sprint ........................................................................................................ 33
Daily Scrum .............................................................................................. 34
Retrospectiva ............................................................................................ 34
Beneficios de Scrum ................................................................................. 34
FUNDAMENTACIÓN LEGAL ........................................................................ 35
CAPÍTULO III ..................................................................................................... 39
PROPUESTA TECNOLÓGICA ..................................................................... 39
Análisis de factibilidad............................................................................... 39
Factibilidad Operacional ........................................................................... 39
Factibilidad Técnica .................................................................................. 40
Factibilidad Legal ...................................................................................... 40
Factibilidad Económica ............................................................................. 40
Etapas de la metodología del proyecto ..................................................... 41
Entregables del proyecto .......................................................................... 47
CRITERIOS DE VALIDACIÓN DE LA PROPUESTA .................................... 47
Juicio de expertos ..................................................................................... 47
PLAN DE PRUEBAS ..................................................................................... 49
Informe de Pruebas del SEC con SOAP y XML ........................................ 49
Datos de prueba ....................................................................................... 49
Encuestas ..................................................................................................... 58
CAPÍTULO IV .................................................................................................... 63
Criterios de aceptación del producto o Servicio ............................................. 63
Entorno de desarrollo de las pruebas ............................................................ 64
Criterios de rentabilidad del servicio web ...................................................... 64
Criterios de evaluación de código del servicio web ....................................... 66
Conclusiones................................................................................................. 67
Bibliografía .................................................................................................... 69
Libros ............................................................................................................ 70
ANEXOS ........................................................................................................... 71
Anexos 1 ....................................................................................................... 71
XVIII
ABREVIATURAS
UG Universidad de Guayaquil CISC Carrera de Ingeniería en Sistemas Computacionales http Protocolo de transferencia de Hyper Texto Ing. Ingeniero CC.MM.FF Facultad de Ciencias Matemáticas y Físicas Mtra. Maestra Msc. Master URL Localizador de Fuente Uniforme www world wide web (red mundial) SEC Servicio de Ejecución de Consultas SEP Servicio de Ejecución de Procedimientos PO Product Owner (Cliente) SM Scrum Master (Facilitador) PBI Product Backlog Items (Items del Backlog de productos) JSF JavaServer Faces EAI Integración de Aplicaciones Empresariales B2B Business to business BPM Gestión de Procesos de negocio. WSDL Lenguaje de descripción de Servicios Web SOAP Simple Object Access Protocol DCOM Distributed Component Object Model UDP Protocolo de Datagrama de Usuario W3C World Wide Web Consortium HTML Lenguaje de marcas de hipertexto ANT Otra ingeniosa herramienta (Another Neat Tool) ISO Organización Internacional de Normalización WS Servicios Web WSIL Web Services Inpection Language JPA Java Persistence API API Application Programming Interface JAR Java Archive JDBC Java Database Connectivity
XIX
SIMBOLOGÍA
s Desviación estándar e Error E Espacio muestral E(Y) Esperanza matemática de la v.a. y s Estimador de la desviación estándar e Exponencia
XX
ÍNDICE DE CUADRO
Cuadro 1 Causas y consecuencias del problema ................................................ 4 Cuadro 2 Delimitación del problema ................................................................... 5 Cuadro 3 Lenguajes soportados por SonarQube .............................................. 26 Cuadro 4 Datos de prueba del servicio web soap ............................................. 49 Cuadro 5 Casos de prueba del servicio web soap ............................................ 55 Cuadro 6 Pregunta N°1 ..................................................................................... 58 Cuadro 7 Pregunta N°2 ..................................................................................... 59 Cuadro 8 Pregunta N°3 ..................................................................................... 60 Cuadro 9 Pregunta N°4 ..................................................................................... 61 Cuadro 10 Pregunta N°5 ................................................................................... 62 Cuadro 11 Sprints del producto ......................................................................... 63 Cuadro 12 Herramientas de software para el desarrollo de las pruebas ........... 64 Cuadro 13 Configuración de las pruebas hacia el servicio web soap ................ 64 Cuadro 14 Criterios de productividad del servicio web ..................................... 65
XXI
ÍNDICE DE GRÁFICOS
Gráfico 1 Ejemplo de servicio web .................................................................... 16 Gráfico 2 Estructura de los mensajes soap ....................................................... 18 Gráfico 3 Arquitectura de Protocolos de los servicios Web ............................... 18 Gráfico 4 Ejes de SonarQube ........................................................................... 26 Gráfico 5 Sonarqube instancia pública Nemo ................................................... 27 Gráfico 6 Pregunta 1 Encuesta ......................................................................... 58 Gráfico 7 Pregunta 2 Encuesta ......................................................................... 59 Gráfico 8 Pregunta 3 Encuesta ......................................................................... 60 Gráfico 9 Pregunta 4 Encuesta ......................................................................... 61 Gráfico 10 Pregunta 5 Encuesta ....................................................................... 62 Gráfico 11 Productividad del servicio web......................................................... 65 Gráfico 12 Rendimiento obtenido del servicio web ............................................ 66 Gráfico 13 Evidencias encontradas del servicio web por SonarQube ............... 66
XXII
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK DE
TRABAJO PARA PROYECTOS DE TITULACIÓN APLICANDO
METODOLOGÍAS SCRUM EN LA INGENIERÍA DE SOFTWARE”
ENFOCADO A ARQUITECTURA CAPA DE NEGOCIO E
IMPLEMENTAR UN SERVICIO WEB SOAP DESTINADO
A PROCESAR CONSULTAS SQL Y FACILITAR UNA
PLATAFORMA DE EVALUACIÓN DE
CALIDAD DE CÓDIGO
Autor: Coello Quezada Ricardo Roberto Tutor: Lsi. Oscar Apolinario
Resumen
En la actualidad los organismos empresariales están en busca de mejoras a sus procesos de negocios, buscando nuevas tecnologías del mercado que apoyen a la integración de sus Sistemas de Información mediante herramientas de código abierto que puedan satisfacer las necesidades del cliente. El proyecto científico reconoce la ubicación del problema y que pertenece al estudio de factibilidad para la propuesta “Framework de trabajo para proyectos de titulación aplicando metodologías Scrum en la ingeniería de software” enfocado a arquitectura capa de negocio e implementar un servicio web SOAP destinado a procesar consultas SQL y facilitar una plataforma de evaluación de calidad de código, manifiesta la necesidad de sostener una capa negocios que establezca la comunicación directa, eficaz y eficiente a través de la capa de datos y visual, llevando reglas, procedimientos y estándares de calidad del desarrollo de software que inicien desde la planificación del proyecto, dando seguimiento y monitoreo de las diversas incidencias y sucesos que ocurran en la aplicación. Palabras claves: Servicio web SOAP, calidad de código, Scrum, log, Bitácora de incidencias
XXIII
UNIVERSIDAD DE GUAYAQUIL FACULTAD DE CIENCIAS MATEMÁTICAS Y FÍSICAS
CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES
"FEASIBILITY STUDY FOR THE PROPOSAL" FRAMEWORK OF WORK
FOR PROJECTS OF QUALIFICATIONS APPLYING METHODOLOGIES
SCRUM IN SOFTWARE ENGINEERING "FOCUSED ON ARCHITECTURE
LAYER OF BUSINESS AND IMPLEMENT A WEB SERVICE SOAP FOR
PROCESSING QUERIES SQL AND PROVIDE A PLATFORM FOR
ASSESSING QUALITY CODE
Autor: Coello Quezada Ricardo Roberto Tutor: Lsi. Oscar Apolinario
Abstract
Today's business organizations are seeking improvements to business processes, seeking to market new technologies that support the integration of their information systems using open source tools that can meet the needs from the customer. The scientific project recognizes the location of the problem in which belongs to the feasibility study for the proposed "Framework of work for titling projects applying methodologies Scrum in software engineering" focused on architecture business layer and implement a Web service SOAP intended for processing SQL queries and provide a platform for code quality assessment, it demonstrates the need to maintain a layer Business established direct, effective and efficient communication through visual data layer and wearing rules, procedures and quality standards of software development that started from the project planning, tracking and monitoring of the various incidents and events occurring in the application. Keywords: Web Services SOAP, quality code, Scrum, logs incidents.
1
INTRODUCCIÓN
El crecimiento tecnológico progresa muy rápido y esto va de la mano con el
consumo de la información, que es a su vez un mecanismo de ayuda de gran
veracidad.
Hoy en día las entidades empresariales buscan automatizar sus procesos, los
Servicios Web contribuyen una de las tecnologías de gran tendencia dentro del
mercado empresarial por su participación en los distintos campos que ayudan a
los sistemas de cómputos, aplicaciones y procesos de las entidades. De igual
manera se ha comprobado un aumento significativo en el área de investigación
dentro del universo académico.
La calidad del producto o servicio tecnológico por parte de las organizaciones es
un tema preocupante desde muchos años atrás, investigadores, ingenieros,
desarrolladores de software, se ha realizado estudios respecto al tema en base a
los siguientes fundamentos:
¿Cómo se obtiene un producto o servicio de calidad?
¿Cómo determinar la calidad del producto o servicio?
R.S.Pressman (1992), la calidad del software es la relación de los requisitos
funcionales y de rendimiento claramente constituido con estándares de
desarrollo, claramente documentado y características implícitas de esperar
completamente de software elaborado por expertos.
En el capítulo I: Dentro de este se detalla el problema que persiste dentro del
contexto, a manera de situación del conflicto, causas del problema y
consecuencias de llevar sosteniéndolo, se detalla la delimitación del problema y
su planteamiento, objetivos de la investigación, alcance, justificación del
problema y metodología del proyecto a utilizarse.
En el capítulo II: Se crea un ambiente referencial, ambiente conceptual; igual al
que forma referencia a fuentes bibliográficas sobre los diversos temas acordados
2
en éste estudio, lo que nos ayuda a sostener el deber implicados en el mismo,
fundamentación legal en la que se ampara la propuesta y posee las preguntas y
las variables con relación al estudio.
En el capítulo III: Se describe la propuesta tecnología, se puntualiza el análisis
de factibilidad de la propuesta en el aspecto operacional, técnico, legal y
económico. Constancias de los entregables del proyecto y criterios y estrategias
para la validación de la propuesta.
En el capítulo IV: Consta de criterios de aceptación del producto, medible y
significativa en cuanto a calidad y rendimiento, adicionalmente se mencionan el
estudio bibliográfico utilizado en los anexos pertinentes.
3
CAPÍTULO I
EL PROBLEMA
PLANTEAMIENTO DEL PROBLEMA
Ubicación del Problema en un Contexto
El problema se encuentra localizado en el proyecto científico Estudio De
Factibilidad Para La Propuesta “Framework De Trabajo Para
Proyectos De Titulación Aplicando Metodologías Scrum En La
Ingeniería De Software” Enfocado a Arquitectura Capa De Negocio e
implementar un servicio web SOAP destinado a procesar consultas
SQL y facilitar una plataforma de evaluación de calidad de código; al
encontrarse la necesidad de establecer una capa de negocio que permita
la comunicación entre la capa de modelo de datos y la visual, sin llevar
una correcta gestión de calidad de código fuente.
Situación Conflicto Nudos Críticos
Actualmente el progreso tecnológico sigue permitiendo automatizar la
evolución de una entidad o empresa por del uso de aplicaciones web
concentrado dentro de la capa de negocio de cada entidad.
Por lo general estas aplicaciones están apoyadas en las metodologías de
desarrollo de software típico, esto provoca costos adicionales al mantener,
documentar o superar la relación con la capa de datos y la capa de
presentación.
No obstante la calidad es un tema interesante significativo, ya que es el
principio de todo desarrollo, técnicas, métodos y mecanismos que se
incorporan a la elaboración del proyecto. Es imprescindible que los
organismos se empeñen a entregar un destacado producto, en donde se
tenga como preferencia la calidad.
Adicionalmente, las empresas se impacientan por minimizar los costos de
operación y tiempos al desarrollo. Conocer anticipadamente el valor y el
4
tiempo del desarrollo de un software, esto ayudaría a la organización a
conocer los riegos en los que se va a involucrar.
Sin embargo se desarrollará un servicio web SOAP, donde se crea a la
vez un método llamado “ServicioWebConsultas” el cual implante las reglas
del negocio que es ejecutar consultas hacia la base de datos, en donde
recibe un XML de entrada y salida, que a su vez el código fuente de este
servicio será analizado por una herramienta gratuita llamada Sonarqube
con el objetivo de mejorar su calidad.
Causas y Consecuencias del Problema
Una de las principales causas y consecuencias de NO contar con una capa
de negocios separada de la capa visual y la de datos; el no tener un apoyo
a mejorar y guiar la calidad del código fuente al grupo de desarrolladores
de software, son los que motivan la existencia de este problema el cual
está representado en el siguiente cuadro Nº 1.
Cuadro 1 Causas y consecuencias del problema
Causas Consecuencias
Envío simultáneo de peticiones, envía solicitudes a la misma vez al servidor.
No es factible al rendimiento del servidor de aplicaciones puede saturarse.
Tiene conexión directa a la base de datos con la capa de presentación.
Exige mayor velocidad en la red.
No realizar una alteración en los
repositorios de datos.
Gran impacto en la capa de presentación, origina desarrollo adicional, tiempos y costos.
Falta de sinergia con sistemas multiplataforma.
Partes elaboradas no podrán ser utilizadas para futuros desarrollos.
Falta de estándares de calidad de software.
No entrega código limpio y depurado, ajustado a la medida del consumidor.
Ausencia de mantenimiento a la parte funcional inmersa en la capa visual.
Afectación a la capa de presentación.
No incorporar nuevas tecnologías que beneficien a la comunicación entre capas.
No se obtendrá excelente escalabilidad.
5
Falta de conocimiento de los gerentes de sistemas y líderes de proyectos en el campo de instrumentos de calidad.
Producto de baja de calidad, ajustado al conocimiento del desarrollador.
Escasa disposición del equipo de desarrollo por investigar mejoras en sus proyectos.
Proyecto con falencias puesta en producción y arreglarlos puede llevar costo y tiempo.
Carencia de hardware y software para la evaluación de variables de calidad.
Valor agregado al desarrollo del producto, se deben tomar medidas anticipadas precedente al inicio del proyecto.
Falta de conocimiento del grupo de desarrollo en el aspecto técnico y control de calidad.
Entrega de proyecto con atrasos, por consiguiente se vuelve a etapas de desarrollo.
Autor: Ricardo Coello Q Fuente: Ricardo Coello Q
Delimitación del Problema
En el cuadro N°. 2 se determina la delimitación del problema, donde se
especifica campo, área, aspecto, tema y cuál es el problema de estudio.
Cuadro 2 Delimitación del problema
Campo: Tecnológico
Área: Metodologías, Desarrollo de proyectos Gestión de Calidad.
Aspecto: Ingeniería de Software.(Servicios web)
Tema: Estudio de factibilidad para la propuesta “framework de trabajo para proyectos de titulación aplicando metodologías Scrum en la ingeniería de software” enfocado a arquitectura capa de negocio e implementar un servicio web SOAP destinado a procesar consultas SQL y facilitar una plataforma de evaluación de calidad de código.
Autor: Ricardo Coello Q Fuente: Ricardo Coello Q
Formulación del Problema
El objetivo de este proyecto de titulación es elaborar en el transcurso de seis
sprint un servicio web SOAP destinado a procesar consultas SQL y facilitar una
plataforma de evaluación de código con la finalidad de establecer un puente de
comunicación entre la capa visual y la capa de datos dentro del proyecto
6
científico ESTUDIO DE FACTIBILIDAD PARA LA PROPUESTA “FRAMEWORK
DE TRABAJO PARA PROYECTOS DE TITULACION APLICACANDO
METODOLOGIA SCRUM EN LA INGENIERA DE SOFTWARE”.
Evaluación del Problema
Para la evaluación del problema se señalan diez aspectos tales como:
delimitado, claro, evidente, concreto, relevante, original, contextual, factible,
identifica los productos esperados y variables. Pero en este estudio se han
seleccionado siete, que son los que más se ajustan a este problema, y cuya
descripción se presenta a continuación:
Delimitado: El problema que persiste actualmente se llevó a cabo en un
proyecto científico y está dirigido al campo tecnológico al área de desarrollo de
software, apoyándose en el área de Metodologías de software ágil Scrum y
gestión calidad cuyos aspectos son:
Estudio de factibilidad para la propuesta “Framework de trabajo para proyectos
de titulación aplicando metodología Scrum en la Ingeniería de Software”
enfocado a la arquitectura de capa de negocio e implementar un servicio web
SOAP destinado a procesar consultas SQL y facilitar una plataforma de
evaluación de calidad de código.
Claro: Estudiado y analizado, notoriamente se logró reconocer los objetivos que
sostiene el desarrollo de este proyecto científico, donde se detalla lo que se
espera alcanzar y lograr respectivamente del actual estudio y fue aceptado como
un estudio de factibilidad para la propuesta de un marco de trabajo para
proyectos de titulación aplicando Scrum, enfocado a la capa de negocio, su
primordial objetivo es crear una capa de comunicación entre las de datos y
presentación y llevar técnicas e incorporar medidas de control de calidad en los
proyectos de desarrollo con el apoyo de la herramienta Sonarqube; actualmente
no se dispone de esta relación entre la capa visual y datos, menos aún obtener
una asesoría de calidad de código documentado.
7
Evidente: Es muy claro que en este proyecto científico, no posee una capa de
lógica de negocios, pero también es muy visible que el servicio web SOAP de
consultas que se desarrollara para suplir esta necesidad, no cuente con un
agente externo que maneje estándares de calidad de software, ya que la calidad
es un tema primordial en donde se apliquen patrones, reglas y métricas en los
siguientes aspectos: comentarios, diseño y arquitectura, duplicaciones,
complejidad, errores potenciales y reglas de codificación.
Relevante: Este proyecto científico se acerca a las presentes exigencias del
consejo de la evaluación, acreditación y aseguramiento de la calidad de la
educación superior en el Ecuador (CEAACES), por ajustarse a ciencia y
tecnología.
.
Contextual: Básicamente el problema se centra en este proyecto científico,
donde hoy en día no se cuenta con una capa de comunicación entre niveles de
presentación y datos, a la vez que este se adapte a ejes de calidad de código.
Factible: El proyecto científico es considerado factible porque no cuenta con una
capa de negocios que enlace la capa de datos con la visual e indica que el
desarrollo de este producto con la metodología ágil Scrum tiene éxito o no.
OBJETIVOS
OBJETIVO GENERAL
Desarrollar un servicio web en lenguaje Java Empresarial que permita la
interoperabilidad con sistemas heterogéneos cuyo principal objetivo es ejecutar
consultas hacia la base de datos y se convierta en el mecanismo de
comunicación para que la capa visual pueda interactuar con la capa de datos.
OBJETIVOS ESPECÍFICOS
1. Evaluar la calidad del código fuente aplicado en los servicios webs utilizados
dentro de la capa de negocios mediante la herramienta Sonarqube.
8
2. Aplicar las métricas de calidad sobre el desarrollo de software realizado en la
capa de negocios, detallo a continuación: comentarios, diseño y arquitectura,
duplicaciones, complejidad, errores potenciales, reglas de codificación
3. Generar reportes visuales de los análisis y resultados obtenidos con esta
herramienta.
4. Demostrar y mejorar la productividad de desarrollo y calidad del código
fuente por medio de Sonarqube
5. Cumplir con las tareas asignadas de un desarrollador de software bajo
metodología SCRUM
6. Crear un servicio web de consultas, utilizando estructuras XML bajo
protocolo SOAP.
7. Construir una bitácora de procesos de consultas realizadas por el servicio
web utilizando la herramienta log4j.
ALCANCES DEL PROBLEMA
Analizar y evaluar el código fuente de los servicios web utilizados en la lógica de
negocio del proyecto de titulación por medio de técnicas y métricas que nos
ayuden a mejorar la calidad del mismo, a través de la herramienta gratuita
Sonarqube.
Utilizar las buenas técnicas de la metodología SCRUM para desarrollar un
servicio web de consultas, que permita visualizar información de la capa de
datos a través de métodos que devuelvan datos XML. Con esto se busca
analizar la concurrencia de peticiones, así como generar bitácoras de acceso a
los datos con la api de apache log4j.
El desarrollo de esta capa tendrá como componente de entrada el modelado de
datos entidad relación bajo herramientas Erwin y JPA para Java Empresarial.
9
Está contemplado en la propuesta con la que se inició este proyecto que incluye
6 Sprint.
JUSTIFICACIÓN E IMPORTANCIA
Actualmente el progreso tecnológico avanza a pasos acelerados, en el aspecto
del consumo de la información, esta debe estar utilizable como un medio de
asesoramiento con mayor velocidad y eficiencia, la integración del servicio
web dinámico de consultas y facilitar una plataforma de calidad de código para
este proyecto científico con fines educativos es que sea de apoyo para futuros
proyectos de software, acortando la duración del desarrollo y gastos en el
campo tecnológico.
Por medio de esta capa de servicios cualquier organización o institución puede
presentar las reglas de negocio desarrollada por la capa de modelado de datos
eficientemente. Este servicio dinámico podrá ser consumido por la capa visual
elaborado en el lenguaje de programación php.
Gracias a la plataforma de evaluación de calidad de código fuente podemos
lograr lo siguiente, se detalla a continuación:
El departamento de desarrollo de una organización o empresa, los gerentes de
sistemas, líderes de proyectos y desarrolladores podrán tener una herramienta
que analice y controle la calidad del código fuente de sus aplicaciones, sean
estas web, móvil, aplicación de escritorio entre otros, por medio de un portal
web que nos arroje reportes visuales de acuerdo a métricas de software el
cual controla esta herramienta que nos apoyen a mejorar eficientemente
nuestro código de acuerdo al lenguaje de programación que corresponda con el
propósito de que sea de gran utilidad para futuros desarrollos.
Justificación Académica: UNESCO (2004) “Los sistemas educativos de
todo el mundo se enfrentan al desafío de utilizar las nuevas tecnologías
de la información y la comunicación (TICs) para proveer a sus alumnos de
herramientas necesarias para su aprendizaje” (p. 13).
Elaborado por: Ricardo Coello Q
Fuente: http://unesdoc.unesco.org/images/0014/001410/010s.pdf
10
Utilidad Práctica
En efecto es importante que se desarrolle este servicio web para la ejecución
de consultas dinámicas dentro del proyecto científico, que sea probatorio y de
gran utilidad, ya que en el futuro esta herramienta sea reutilizable para ayudar
a otros proyectos tecnológicos de otra índole.
Beneficiarios
Los beneficiados de este desarrollo del servicio web de consultas y con su
código altamente ajustado por métricas de calidad donde se llevara un
seguimiento de ocurrencias del producto; es la capa visual del proyecto
científico con fines educativos el cual podrá ser escalable a distintas
plataformas y sistemas distribuidos.
METODOLOGÍA DEL PROYECTO
Metodología de desarrollo ágil Scrum
La propuesta radica en realizar una capa de negocios que sea de enlace entre la
capa de datos y de presentación, creando un servicio web SOAP de consultas,
el cual ejecutará servicios SQL configurados por la capa de datos y consumidos
por la capa de presentación, el servicio web será guiado con ejes de calidad de
software por medio de la herramienta Sonarqube y se le dará seguimiento a las
ocurrencias que existan dentro de la aplicación por medio de logs, se efectúa
avisos y sugerencias en el aspecto de calidad de código fuente.
Supuestos
1. Se utilizará el analizador de código fuente Sonar-runner para Sonarqube.
2. Se analizará y evaluará por sprint la calidad de código del servicio web de
consultas.
3. Se realizará ajustes dentro de la codificación del servicio web de acuerdo a
los resultados del análisis que arroje Sonarqube.
11
4. Se instalará el plugin de sonar en los ide correspondientes para el grupo de
desarrollo de la capa de negocios.
5. Se obtendrá un informe visual (reportes) de los resultados del análisis de los
servicios web de la capa de negocios (SEC y SEP).
Restricciones
1. Se debe contar con una base de datos que tenga charset UTF-8.
2. Se debe configurar la ip del SonarQube en el archivo de configuración del
analizador sonar runner para llevar el Análisis correspondientes.
3. Se debe conseguir el driver *.jar jdbc de acuerdo a la base de datos que se
escoja para Sonarqube o por medio del centro de actualización del portal.
Plan de Calidad
Las pruebas no se realizarán sobre Sonarqube ya que esta es una herramienta
de ayuda a la calidad del código fuente, las mismas serán hacia el servicio web
de consultas:
Las pruebas son las siguientes:
1. Pruebas de estrés y rendimiento sobre el servicio web de consultas.
2. Pruebas de funcionamiento hacia los servicios
12
CAPÍTULO II
MARCO TEÓRICO
ANTECEDENTES DEL ESTUDIO Dentro de la Universidad de Guayaquil, Facultad de Ingeniería en Sistemas
Computacionales, se aprobó el siguiente tema de tesis
“Estudio de un sistema de gestión de inventario para pymes del sector
artesanal utilizando tecnología open source portlets, jsf, web service y un
servidor de base de datos gratuito Oracle”.
Muchos son los beneficios y ventajas de la aplicación de servicios web en
los proyectos de desarrollo de software, su adaptación al acoplarse a
diversas plataformas ajustado a la actividad económica, es el propósito del
estudio a los PYMES artesanales del Guayas.
FUNDAMENTACIÓN TEÓRICA
Los recursos web componen un gran impacto en el aspecto académico y
empresarial a nivel tecnológico, gracias a que está compuesto por
estándares libres que son aceptados en la industria, resolviendo el
tradicional muro al momento de la interoperabilidad a través de los
diferentes sistemas de información que conforman las organizaciones.
(XML Web Services - www.w3schools.com, 2016)
Gracias a estos servicios web se ha generado cierta controversia en la
manera en el cual las instituciones incorporan sus aplicaciones, procesos
y datos. La utilización de estos servicios web en las empresas pueda
compartir información con clientes, accionistas, socios, proveedores de
forma homogénea.
Académicamente la cantidad de apartados, foros, debates, congresos,
proyecto e investigación en general a los Recursos Web ha notado un
13
gran incremento, estudiando las implicaciones de los Recursos Web en
diferentes áreas tales como:
EAI (Enterprise Application Integration) o integración de aplicaciones
empresariales, B2B (Business to Business), transmisión de información a
nivel de transacciones, BPM (Business Project Management) y Web
Semántica.
Los servicios web son parte clave para el esplendor de paradigmas tales
como SOA (Service Oriented Architecture) - Arquitectura Orientada a
Servicios, esta idea ya está presenta en la instituciones, organizaciones y
en la industria de integración.
El malestar actual del mercado corresponde a la calidad del producto
(desarrollo de software), exigiendo a la gerencia de las organización
métodos que apoyen a una buena gestión de calidad en el campo de
desarrollo.
Gracias al análisis y evaluación de la calidad de desarrollo del producto,
se logra alcanzar una estructura de control que nos facilite la medición y
corrección de equivocaciones que se pase por alto de forma manual.
Hoy en día las empresas desarrolladoras de software se enfocan a
entregar código ajustado a la medida cumpliendo con los previsto por el
cliente, la mayoría de los desarrollos sufren de pobreza en cuanto a su
calidad de codigo, ya que este adapta al conocimiento del programador o
desarrollador del producto, sin embargo ni los líderes y gerentes de
software manejan herramientas que gestionen esta calidad en el ámbito
de soluciones.
Por tal motivo Sonarqube nos proporciona ciertas meticas adecuadas al
lenguaje de programación, estas a su vez nos guían y benefician
obteniendo mejoría de calidad en nuestro producto.
14
PREGUNTA CIENTÍFICA A CONTESTARSE
¿Por qué es necesario la incorporación de un servicio web como pieza
esencial de la capa de negocio del proyecto científico “ESTUDIO DE
FACTIBILIDAD PARA LA PROPUESTA”FRAMEWORK DE TRABAJO
PARA PROYECTOS DE TITULACION APLICANDO METODOLOGÍA
SCRUM EN LA INGENIERÍA DE SOFTWARE” ENFOCADO A LA
ARQUITECTURA DE CAPA DE NEGOCIO E IMPLEMENTAR UN
SERVICIO WEB SOAP DESTINADO A PROCESAR CONSULTAS SQL Y
FACILITAR UNA PLATAFORMA DE EVALUACIÓN DE CALIDAD DE
CÒDIGO”?
VARIABLES DE LA INVESTIGACION
Variable Independiente
El servicio web SOAP “SEC”, contribuye a la ejecución de consultas
dinámicas SQL (sentencias select) hacia la base de datos y facilitar una
plataforma de evaluación de calidad de código fuente.
Variable Dependiente
El intercambio de información optima y estructurada desde la base de
datos hacia la capa de presentación, este servicio web a su vez tiene la
capacidad de adaptarse a cualquier interfaz de desarrollo de software, los
tiempos de respuesta del servicio influirá según la infraestructura que se
utilice, ligado mediante una plataforma libre de calidad de código
examinando la codificación java del SEC.
DEFINICIONES CONCEPTUALES
Descripción de los conceptos elementales de los servicios web y
Sonarqube
¿Qué son los servicios web?
Agrupación de estándares y protocolos que ayudan a la interacción entre
sistemas desplegados y ejecutados en diversos lenguajes de
15
programación y plataforma. (The Java EE 6 Tutorial -
http://docs.oracle.com, 2013)
Los servicios Web son aplicaciones cliente y servidor que se
comunican a través del protocolo de través de la World Wide Web
(WWW), Hypertext Transfer Protocol (HTTP).
Conforme a lo explicado por la World Wide Web Consortium
(W3C), los servicios web facilitan un estándar de
interoperabilidad a través de proyectos de software, el cual se
efectúan sobre distintas plataformas y sistemas operativos.
La mayor característica de los servicios web es su gran
interoperabilidad y extensibilidad, de esta forma los equipos
puedan procesarlo gracias a la aplicación de XML.
Requerimientos para consumir un servicio web
Los componentes indispensables que conforman los servicios web son
los siguientes: (Servicios Web - http://es.slideshare.net, s.f.)
1. El servicio.
2. El proveedor de Servicios.
3. El solicitante de Servicio
4. El registro de Servicio.
Principales Especificaciones de los servicios web
SOAP (Simple Object Access Protocol)
WSDL (Web Services Protocol Stack)
UDDI (Universal Description, Discovery and Integration)
Un ejemplo de servicio Web
Una compañía de turismo presenta un paquete de servicios, vuelo en
avión y habitación en prestigioso hotel, a través de un servicio web.
(Coordinación de servicios web: de las aplicaciones a los modelos
formales - http://dialnet.unirioja.es, s.f.)
16
El cliente solicita información del viaje para algún lugar por medio
del servicio web.
La compañía de turismo brinda el servicio el cual consiste de
separar un vuelo y una habitación en un hotel de una ciudad
determinada.
Para proveerle la información que requiere al cliente cuando se
efectúa la consulta, el servicio web de la compañía de turismo
llamará a otros servicios web para que le dispongan de esta
información.
La compañía de turismo es cliente de otros servicios web, en
esencia un servicio web suministra la información acerca de
vuelos y el otro servicio web de los hoteles.
Adicional, el cliente realizará el desembolso por medio de una
tarjeta de crédito el cual lo efectuará un servicio web seguro.
Gráfico 1 Ejemplo de servicio web
Autor: Ricardo Coello Q Fuente: http://dialnet.unirioja.es/descarga/tesis/18607.pdf pag: 27
17
El código SOAP, muestra cómo se solicitaría un vuelo de Madrid a Londres.
Durante todo el proceso participan una sucesión de tecnologías que
originan esta comunicación de la información, de cierto modo se cita a
SOAP (Protocolo Simple de Acceso a Objetos). (Guía Breve de
Servicios Web - http://www.w3c.es)
Protocolo apoyado en XML, permite relacionarse con
dispositivos heterogéneos, posee la capacidad de transferir
información compleja.
La transmisión de los datos se puede dar por medio de los
<?xml version=’1.0’ ?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header> <m:reserva xmlns:m="http://agenciaviajes.ejemplo.org/reserva" env:role=http://www.w3.org/2003/05/soap-envelope/role/next
env:mustUnderstand="true"> <m:referencia> uuid:A003595
</m:referencia> <m:fechaReserva>2008-07-17</m:fechaReserva> <m:horaReserva>11:37CET</m:horaReserva> </m:reserva> <n:pasajero xmlns:n=http://miempresa.ejemplo.com/empleados
env:role=http://www.w3.org/2003/05/soap-envelope/role/next env:mustUnderstand="true">
<n:nombre>Paula Casado</n:nombre> </n:pasajero>
</env:Header> <env:Body>
<p:itinerario xmlns:p="http://agenciaviajes.ejemplo.org/reserva/viaje">
<p:trayecto> <p:tipo>vuelo</p:tipo> <p:origen>Madrid</p:origen> <p:destino>Londres</p:destino> <p:fechaSalida>2008/07/26</p:fechaSalida> <p:horaSalida>10:30</p:horaSalida> </p:ida>
</env:Body> </env:Envelope>
18
protocolos HTTP, SMTP, etc.
SOAP establece la forma de los mensajes. La composición del
mensaje SOAP se da por un envelope (sobre), su estructura se
encuentra formada que se encuentran en los siguientes
elementos: header (la cabecera) y body (el cuerpo).
Gráfico 2 Estructura de los mensajes soap
Autor: Ricardo Coello Q. Fuente: http://www.w3c.es/Divulgacion/GuiasBreves/ServiciosWeb
Gráfico 3 Arquitectura de Protocolos de los servicios Web
Autor: Ricardo Coello Q Fuente: http://es.slideshare.net/dwebslide/servicios-web?related=1 pag 10
19
WSDL
Lenguaje que describe el servicio web, basado en XML, delegado a
establecer la comunicación con los servicios. (SOAP Y WSDL -
bibing.us.es, s.f.)
Es decir, se encuentra fundamentado en XML, referente a un
servicio web.
Este documento WSDL, ofrece la información indispensable al
cliente para conectarse con el servicio web.
UDDI
Llamado registro UDDI, abarca información mundial de los servicios
suministrados a las empresas asentadas.
Especificación de SOAP
Mensajes SOAP son documentos XML que contienen algunos o
todos los siguientes elementos: (Servicios web: beneficios, desafíos
y unico, desarrollo visual - http://www.altova.com/, s.f.)
Envelope
Especifica que el documento XML es un mensaje SOAP;
encierra el mensaje en sí.
Elemento más importante y de mayor jerarquía dentro del
documento XML y representa al mensaje que lleva
almacenado dicho documento.
Header
Es opcional, contiene información relevante para el mensaje,
por ejemplo, la fecha en que el mensaje fue enviado, datos
de autenticación, etc.
20
Cuerpo
Incluye la carga útil del mensaje o llamado cuerpo del
mensaje, contenedor de información.
Contenedor de información en el cual se almacenarán los
datos que se quieran transmitir de lado a lado de la
comunicación
Fault o Fallo
Es opcional lleva la información sobre un cliente o error del
servidor dentro de un Mensaje SOAP.
Utilizado en los mensajes de respuesta para indicar al cliente
algún error ocurrido en el servidor.
Los datos se envían entre el cliente(s) y el servicio Web
mediante petición o request y mensajes SOAP de respuesta,
el formato para el que se especifica en la definición WSDL.
Debido a que el cliente y el servidor se adhieran al contrato
WSDL cuando se crean mensajes SOAP, los mensajes están
garantizados para ser compatible.
Un ejemplo sencillo de mensajes SOAP
Tenemos como ejemplo un servicio web que tiene relación con
productos y otras características, nosotros deseamos realizar una
petición por el precio de un producto en específico por su código,
por ejemplo: “COD-001”, el código SOAP estaría compuesto de la
siguiente manera: (Ejemplo mensajes SOAP - http://bibing.us.es,
s.f.)
21
Como respuesta a esta petición vendría de vuelta el siguiente mensaje
en el que se le dice que el precio del producto pedido es 4.12:
Ventajas y desventajas del servicio web
Ventajas
1. La interoperabilidad mediante XML, entre sistemas de
cómputo que son ejecutados en diversas plataformas,
sistemas operativos y proyectos de software desarrollados
en múltiples lenguajes de programación por ejemplo: Java,
C++, Perl, Python entre otros.
2. Gracias al uso de HTTP, se elimina el impedimento de los
procedimientos remotos ya que XML-RPC y SOAP trabajan
bajo el protocolo HTTP donde es permitido el tráfico por
dicho firewall.
<?xml version="1.0"?> <SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body> <getQuote
xmlns="http://namespaces.ventaproductos.org/xmljava/ch2/"> <id> COD-001</id>
</getQuote> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
<?xml version="1.0"?> <SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body> <Quote
xmlns="http://namespaces.ventaproductos.org/xmljava/ch2/"> <precio>10.20</precio>
</Quote> </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
22
3. Usa protocolos estándares de la web: HTTP, XML y TCP/IP.
Desventajas
1. El manejar XML para realizar llamadas a procedimientos
remotos puede ser desmesurado, por tal motivo ocupa
ancho de banda para ser transferida.
Log
El Log es un mensaje que le indica al desarrollador la ocurrencia de un
evento
(Vortexbird, 2015)
Log4J
Es un componente que nos permite hacer trazas de nuestras
aplicaciones.
Se configura fácilmente mediante un fichero de configuración llamado:
log4j.properties o Log4j.xml
Prioridades
Cada mensaje que se escribe se hace con un nivel de prioridad.
Cuando se escriben trazas en nuestras aplicaciones, normalmente se
hacen en diferentes partes del código y con diferentes niveles de
prioridad.
De acuerdo al nivel de prioridad establecido para el mensaje y al nivel
configurado en el fichero de configuración, estos mensajes se podrán
mostrar o no.
El nivel de prioridad por defecto es INFO, lo cual quiere decir que todos
los mensajes escritos con esta se mostrarán automáticamente.
23
Nivel de prioridad de traza
Nivel Básico: Debug, info, warn, error, fatal
Nivel extra: All, off.
FATAL
Muestra los mensajes de situaciones que probablemente harán abortar la
aplicación.
ERROR
Muestra los mensajes de errores que no son deseados pero que no
interrumpirán la aplicación.
WARN
Muestra los mensajes de contextos peligrosos para la aplicación, o
ciertas operaciones de uso no recomendado.
INFO
Muestra los mensajes de información sobre la ejecución de la aplicación,
o sus eventos importantes.
DEBUG
Muestra los mensajes para depurar la aplicación (Utilizado en tiempo de
desarrollo).
ALL
Muestra todos los mensajes.
OFF
Desactiva todos los mensajes.
Obtener un logger por código
Logger logger = Logger.getRootLogger();
La práctica más habitual para instanciar un logger es declararlo como
estático asociado a la clase de la cual queremos hacer las trazas.
private static Logger log = Logger.getLogger(NuestraClase.class);
24
Para establecer la prioridad de un logger se lo puede hacer mediante el
fichero de configuración o con la siguiente línea de código:
logger.setLevel((Level)Level.WARN);
Impresión de trazas.
Logger log = Logger.getRootLogger();
log.debug(mensaje) .- Escribe el mensaje cuando el nivel de traza mínimo
especificado es DEBUG.
log.error(mensaje).- parecido a lo anterior.
log.fatal(mensaje).- parecido a lo anterior.
log.info(mensaje).- parecido a lo anterior.
log.warn(mensaje).- parecido a lo anterior.
Loggers.
Código con log4j
import org.apache.log4j.Looger; import org.apache.log4j.xml.DOMConfigurator; public class PruebaLayoutAndConsolaAppender{ private static Logger logger; static{ DOMConfigurator.configure(“PruebaLayoutAndConsolaAppender.xml”); Logger= Logger.getLogger(““PruebaLayoutAndConsolaAppender.class”); public static void main(String arg[ ]){ logger.info(“Inicio de la Prueba de log4j”); logger.debug(“Este es un mensaje de debug ”); logger.error(“Este es un error”); logger.fatal(“Esto es fatal”);
} }
}
25
¿Qué es Calidad?
Por su parte, la norma ISO 8402 define calidad como el "conjunto de
propiedades y características de un producto o servicio que le confieren
su aptitud para satisfacer unas necesidades expresas o implícitas".
Es decir, que la calidades una característica o atributo de una cosa.
(Alvarado, 2012)
¿Qué es la Calidad de Software?
Es el conjunto de cualidades que lo caracterizan y que determinan su
utilidad y existencia.
Sinónimo de eficiencia, flexibilidad, corrección, confiabilidad,
mantenibilidad, portabilidad, usabilidad, seguridad e integridad.
La calidad de software puede medirse después de elaborado el producto.
Pero esto puede resultar muy costoso si se detectan problemas deriva de
imperfecciones en el diseño, por lo que es imprescindible tener en cuenta
tanto la obtención de la calidad como su control durante todas las etapas
del ciclo de vida del software.
¿Qué es Sonarqube?
SonarQube es una plataforma de gestión de calidad de código abierto,
dedicado a analizar de forma continua y medir la calidad técnica, desde el
portafolio de proyectos, controla la calidad en 7 ejes: (SonarQube -
https://unpocodejava.wordpress.com, 2013)
26
Gráfico 4 Ejes de SonarQube
Autor: Ricardo Coello Q Fuente: http://www.sonarqube.org/
La plataforma soporta actualmente más de 20 lenguajes incluyendo Java,
JavaScript, Cobol, PL, C#…
Cuadro 3 Lenguajes soportados por SonarQube
Lenguajes
Android
Erlang PL/SQL
C/C++
Flex / ActionScript Python
C#
Groovy XML
Delphi / Pascal
Java Web
Autor: Ricardo Coello Q
Fuente: Ricardo Coello Q. La herramienta puede extenderse a través de plugin, tanto para soportar
más lenguajes como para soportar nuevos lenguajes.
Hay plugin para Eclipse, Reportes, Métricas adicionales.
Para ver de un vistazo el control de calidad que ofrece lo más práctico es
echar un vistazo a Nemo, una instancia pública de SonarQube:
27
Gráfico 5 Sonarqube instancia pública Nemo
Autor: Ricardo Coello Q Fuente: https://unpocodejava.wordpress.com/2013/12/03/que-es-sonarqube/
Métricas
Diseño y Arquitectura:
Nos ayuda a conocer si el diseño de nuestro proyecto está en excelente
estado.
Sonarqube interpreta el diseño como el número mínimo de ciclos
detectados dentro de un directorio para poder identificar todas las
dependencias no deseadas.
Esta métrica está disponible a nivel de directorio. (Hispano S. , s.f.)
Duplicaciones:
El código duplicado es un término en programación de computadores
para una secuencia de código fuente que ocurre más de una vez, dentro
de un programa o a través de diferentes programas, de propiedad, o
mantenido, por la misma entidad. El código duplicado es considerado
28
indeseable por una serie de razones. (Hispano S. , Duplicaciones -
https://sonarqubehispano.org/, s.f.)
Complejidad
La Complejidad Ciclomática (en inglés, Cyclomatic Complexity) es una
métrica del software que proporciona una medición cuantitativa de la
complejidad lógica de un programa. (Complejidad Ciclomática -
https://es.wikipedia.org, s.f.)
El resultado obtenido en el cálculo de la complejidad Ciclomática define el
número de caminos independientes dentro de un fragmento de código y
determina la cota superior del número de pruebas que se deben realizar
para asegurar que se ejecuta cada sentencia al menos una vez.
La medida resultante puede ser utilizada en el desarrollo, mantenimiento
y reingeniería para estimar el riesgo, costo y estabilidad.
Es la complejidad Ciclomática, también conocida como métrica McCabe.
Siempre que el flujo de control se divide, el contador de complejidad se
incrementa en uno. Cada función tiene una complejidad mínima de 1.
(Hispano S. , Complejidad - https://sonarqubehispano.org/, s.f.)
Errores Potenciales:
Un error o fallo en un programa de computador o sistema de software que
desencadena un resultado indeseado. Los programas que ayudan a la
detección y eliminación de errores de programación de software son
denominados depuradores (debuggers).
La mayor parte de los lenguajes de programación presentan al menos
dos tipos de errores que permiten a los programadores manejar las fallas
de los programas de una manera eficiente y que no resulte agresiva con
29
el usuario final. Dichos errores son de compilación y errores en tiempo de
ejecución.
Normas de Codificación:
El estilo de programación (también llamado estándares de código o
convención de código) es un término que describe convenciones para
escribir código fuente en ciertos lenguajes de programación.
El estilo de programación es frecuentemente dependiente del lenguaje de
programación que se haya elegido para escribir, por ejemplo el estilo del
lenguaje de programación C variará con respecto al del lenguaje BASIC.
El buen estilo, al tratarse de algo subjetivo, es difícil de categorizar
concretamente; con todo, existen un número de características generales.
Comentarios
En la programación de computadoras, un comentario es una construcción
del lenguaje de programación destinada a integrar información adicional
en el código fuente de un programa informático.
En la mayoría de los casos, cuando el código fuente es procesado por un
compilador o intérprete, los comentarios no se toman en cuenta.
Los comentarios tienen una amplia gama de posibles usos: desde la
mejora del código fuente con descripciones básicas hasta la generación
de documentación externa.
Pruebas Unitarias
En programación, una prueba unitaria es una forma de comprobar el
correcto funcionamiento de un módulo de código.
30
Esto sirve para asegurar que cada uno de los módulos funcione
correctamente por separado, luego, con las Pruebas de Integración, se
podrá asegurar el correcto funcionamiento del sistema o subsistema en
cuestión.
La idea es escribir casos de prueba para cada función no trivial o método
en el módulo, de forma que cada caso sea independiente del resto.
Herramientas para el análisis de calidad de código por medio de Sonarqube
Las herramientas que se incorporan a Sonarqube son las siguientes:
(Garzás, 2012)
1. Sonar-runner
2. PMD
3. CHECK STYLE
Sonar-runner
El SonarQube Runner nos permite realizar análisis de código fuente sin
necesidad de utilizar herramientas como Ant o Maven.
Estas herramientas son bien conocidas por los equipos de desarrollo
J2EE (o cualquier otra nueva tecnología), pero recuérdate que el objetivo
de esta serie sobre la instalación de SonarQube.
SCRUM
Scrum, es un marco de trabajo para la aplicación de proyectos de
software, con la finalidad de construir dominios complejos, está
representado por: (Un Mejor Scrum - http://media.agile42.com, s.f.)
1. Acoge una táctica de desarrollo evolutiva, en vez de un detalle
completo la planificación y realización completa del dominio.
2. Solapa las etapas del desarrollo, en vez de ejecutarlas una después
de otra.
31
3. La calidad del producto depende del conocimiento del equipo de
desarrollo involucrado en el proyecto.
Se utiliza continuamente en grupo con Extreme programming (XP).
¿Dónde predomina el problema?
1. Las liberaciones coge excesivo tiempo.
2. Calidad flaquea.
3. El equilibrio coge excesivo tiempo.
4. Modificación y Cambios son complejos de llevarse a cabo.
¿Cómo apoya Scrum a solucionar esto?
Los métodos de trabajo tradicionales se fundamentan en documentos
donde relacionan el conocimiento, la retroalimentación es muy larga o no
se hallan, se ve reflejada en los proyectos baja productividad y que esta
metodología encamina a fracasar.
Scrum soluciona lo antes mencionado, ya que proporciona una
plataforma para que el grupo humano labore en grupo de forma efectiva y
eficiente, a su vez deja en evidencia cualquier inconveniente que se nos
presente.
Esencia
1. El team acoge objetivos transparentes.
2. El team se establece de acorde al trabajo que se va a realizar.
3. El team ofrece con estabilidad los procedimientos y funcionalidades
más preciados del proyecto.
4. El team acoge retroalimentación o regresión de personas que no
forman parte del equipo.
5. El team razona y recapacita sobre su trabajo ya realizado, con el
objetivo de seguir mejorando.
6. La estructura completa obtiene transparencia en cuanto a la evolución
del team.
32
7. La administración y el team se informan de modo transparente y
honesto.
Equipo
El team de desarrollo se apoya en 2 roles:
1. Product Owner
2. Scrum Master
Product Owner o Project Manager
Representa el usuario final, el negocio, stakeholders, responsable de
guiar team de desarrollo hacia las caracterizas correctas del producto,
administra el Product Backlog.
Scrum Master
Administrador del proyecto, es el coach, mentor, organiza reuniones y es
el encargado de emplear Scrum.
Team de desarrollo
Equipo de desarrollo del producto, evalúan la magnitud de las tareas del
Backlog, acuerdo de dar entregables de calidad productiva, seguimiento y
monitoreo de su progreso.
Recomendación: equipo de 3 – 9 personas.
Elementos de Scrum
Scrum está formada por pocos e importantes elementos, se detalla a
continuación:
Product Backlog
Parte principal de Scrum, se conoce como la Pila del producto o Product
Back Log, todos los requerimientos del proyecto.
Lista de ítems (PBIs, Product Backlog Ítems), es responsabilidad del
Product Owner ya que solo se puede modificarlo, el team de desarrollo
puede establecer su comentario o recomendaciones.
33
Sprint Backlog
Conjunto de requisitos que ya han sido seleccionados que van a ser
desarrollados en el siguiente Sprint, en conjunto con el trabajo que el
team de desarrollo identifico para generar un incremento funcional
entregable al término.
Aumento funcional condicionalmente otorgable
El fruto de cada Sprint, tiene que ser un aumento funcional
condicionalmente otorgable.
Aumento Funcional
Porque es un componente nuevo del producto, elaborado
progresivamente.
Condicionalmente Otorgable
Estos componentes ya se encuentran validados y verificados, listos para
ser extendidos en el ambiente productivo.
Burn down chart
Grafico Público que muestra en medida la cantidad de requisitos en el
Backlog del proyecto inconclusos al inicio de cada Sprint.
Si se conecta los puntos de los Sprint finalizados, se podrá observar la
evolución del proyecto, esta línea de medición debe ser descendente.
Sprint
Las repeticiones son conocidas como Sprint, evolución continua y
progresiva.
El producto se elabora en aumentos significativos entregados en tiempos
cortos y así lograr un feedback inmediato.
Duración del Sprint, 1 a 4 semanas, lo más común es 2 o 3 semanas.
Se debe sostener que la duración del sprint no sea modificada una vez
34
fijada.
Daily Scrum
Reunión diaria debe tener una duración de 15 minutos, en esta se trata lo
siguiente:
¿Qué se ha realizado desde el día anterior?
¿Qué realizara el día de mañana?
¿Inconvenientes que se ha presentado que ha impedido alcanzar el
objetivo?
Retrospectiva
Reunión al término del sprint, no debe ser omitida, esta se centra en el
proceso, toda persona que no participo en el sprint queda excluidos al
menos que sean invitados por el team:
1. Inspeccionar el trabajo realizado y el no completado.
2. Entregar el producto finalizado al interesado.
3. El trabajo no contemplado no debe ser evidenciado.
4. 4 horas de retrospectiva.
Beneficios de Scrum
Elasticidad a cambios:
Capacidad de reacción a modificaciones a requerimientos producidos por
las necesidades del cliente.
1. Time to Market decrece:
Cliente puede dar uso de las funcionalidades principales del producto
antes de que este sea completado.
2. Alto rendimiento
Se obtiene gracias a la motivación del team que pueden organizarse
de forma independiente.
3. Pronostico de tiempo:
Gracias a Scrum, se puede obtener la rapidez media del team por
35
cada sprint.
4. Reducción de Riesgos:
Nos ayuda a librarnos de riesgos de manera previa, gracias a que se
conoce la velocidad que marcha el team y sus tareas.
FUNDAMENTACIÓN LEGAL
CONSTITUCIÓN DE LA REPÚBLICA DEL ECUADOR
Sección octava
Ciencia, tecnología, innovación y saberes ancestrales
Art. 385.- El sistema nacional de ciencia, tecnología, Innovación y saberes
ancestrales, en el marco del respeto al ambiente, la naturaleza, la vida, las
culturas y la soberanía, tendrá como finalidad:
a) Generar, adaptar y difundir conocimientos científicos y tecnológicos.
b) Desarrollar tecnologías e innovaciones que impulsen la producción
nacional, eleven la eficiencia y productividad, mejoren la calidad de vida
y contribuyan a la realización del buen vivir.
Art. 386.- El sistema comprenderá programas, políticas, recursos,
acciones, e incorporará a instituciones del Estado, universidades y
escuelas politécnicas, institutos de investigación públicos y privados,
empresas públicas y privadas, organismos no gubernamentales y personas
naturales o jurídicas, en tanto realizan actividades de investigación,
desarrollo tecnológico, innovación…
El Estado, a través del organismo competente, coordinará el sistema,
establecerá los objetivos y políticas, de conformidad con el Plan Nacional
de Desarrollo, con la participación de los actores que lo conforman.
Art. 387.- Será responsabilidad del Estado:
36
a) Facilitar e impulsar la incorporación a la sociedad del conocimiento para
alcanzar los objetivos del régimen de desarrollo.
b) Promover la generación y producción de conocimiento, fomentar la
investigación científica y tecnológica…
c) Asegurar la difusión y el acceso a los conocimientos científicos y
tecnológicos, el usufructo de sus descubrimientos y hallazgos en el
marco de lo establecido en la Constitución y la Ley.
d) Garantizar la libertad de creación e investigación en el marco del
respeto a la ética, la naturaleza, el ambiente…
e) Reconocer la condición de investigador de acuerdo con la Ley.
Art. 388.- El Estado destinará los recursos necesarios para la investigación
científica, el desarrollo tecnológico, la innovación, la formación científica,…
la recuperación y desarrollo de saberes ancestrales y la difusión del
conocimiento. Un porcentaje de estos recursos se destinará a financiar
proyectos mediante fondos concursables. Las organizaciones que reciban
fondos públicos estarán sujetas a la rendición de cuentas y al control
estatal respectivo.
La fundamentación legal para los estudios según la nueva ley de educación
superior se refleja en los artículos:
Art. 8.- Serán Fines de la Educación Superior.- La educación superior
tendrá los siguientes fines:
a) Aportar al desarrollo del pensamiento universal, al despliegue de la
producción científica y a la promoción de las transferencias e
innovaciones tecnológicas;
37
b) Fortalecer en las y los estudiantes un espíritu reflexivo orientado al
logro de la autonomía personal, en un marco de libertad de
pensamiento y de pluralismo ideológico;
c) Contribuir al conocimiento.
d) Formar académicos y profesionales responsables, con conciencia ética
y solidaria, capaces de contribuir al desarrollo de las instituciones de la
República, a la vigencia del orden democrático, y a estimular la
participación social;
e) Aportar con el cumplimiento de los objetivos del régimen de desarrollo
previsto en la Constitución y en el Plan Nacional de Desarrollo;
f) Fomentar y ejecutar programas de investigación de carácter científico,
tecnológico y pedagógico que coadyuven al mejoramiento y protección
del ambiente y promuevan el desarrollo sustentable nacional;
g) Constituir espacios para el fortalecimiento del Estado Constitucional,
soberano, independiente, unitario, intercultural, plurinacional y laico;
h) Contribuir en el desarrollo local y nacional de manera permanente, a
través del trabajo comunitario o extensión universitaria.
Art. 28.- Fuentes complementarias de ingresos y exoneraciones
tributarias.- Las instituciones de educación superior públicas podrán crear
fuentes complementarias de ingresos para mejorar su capacidad
académica, invertir en la investigación, en el otorgamiento de becas y
ayudas económicas, en formar doctorados, en programas de posgrado, o
inversión en infraestructura, en los términos establecidos en esta Ley.
Las instituciones de educación superior públicas gozarán de los beneficios
y exoneraciones en materia tributaria y arancelaria, vigentes en la Ley para
el resto de instituciones públicas, siempre y cuando esos ingresos sean
destinados exclusivamente y de manera comprobada a los servicios antes
referidos.
38
Los servicios de asesoría técnica, consultoría y otros que constituyan
fuentes de ingreso alternativo para las universidades y escuelas
politécnicas, públicas o particulares, podrán llevarse a cabo en la medida
en que no se opongan a su carácter institucional sin fines de lucro. El
Consejo de Educación Superior regulará por el cumplimento de esta
obligación mediante las regulaciones respectivas.
Autor: Ricardo Coello Q Fuente: http://www.utpl.edu.ec/sites/default/files/documentos/reglamento-de-regimen-academico-2013.pdf
39
CAPÍTULO III
PROPUESTA TECNOLÓGICA Realizar un servicio web SOAP en lenguaje de programación java empresarial, el
cual nos posibilite la interoperabilidad con sistemas de cómputo heterogéneas,
desarrollados en distintas plataformas, cuyo primordial objetivo será consumir
servicios de consultas y nos permita establecer la comunicación entre la capa
de presentación y de datos, siguiendo estándares de gestión de calidad y llevar
una bitácora de incidencias.
Análisis de factibilidad
Este proyecto es factible, ya que el desarrollo de un servicio web SOAP, facilitará
la interoperabilidad de diversos sistemas de información a su vez optimizaría la
realización del consumo de consultas, el cual tiene como finalidad buscar
opciones de término al problema manifestado, el no poseer una capa de negocio
que sostenga la comunicación entre los diferentes componentes que conforman
el sistema (visual y datos), sin llevar un control de calidad de software y
seguimiento de incidencias.
Factibilidad Operacional
El proyecto es factible, debido a que los componentes que lo conforman
necesitaran trabajar conjuntamente para cumplir con el objetivo, el proceso inicia
con un cliente consumidor (capa visual) solicitando un servicio, este debe estar
configurado en el modelo de datos (capa de datos), con el fin de recuperar
información asociado al servicio (ejecución de consulta).
Cualquier cambio o modificación, que se efectúen en los diversos componentes
del proyecto, no afectaran el proceso transaccional de cualquier consulta que
ejecute el cliente ya que concurrencia simultánea de requerimientos, es
soportada por la alta capacidad de hardware del área de infraestructura, con
esto podemos determinar que la integración de cada uno de sus elementos
permitirá la ejecución de cualquier transacción de manera exitosa.
40
Factibilidad Técnica
Las herramientas que se utilizaron para el desarrollo factible de este proyecto,
son las siguientes:
El servidor de aplicaciones Jboss 7.1.1, permite soportar varias peticiones de
usuarios simultáneamente esto genera una gran capacidad de
transaccionabilidad. Lenguaje de programación java versión 7, permite la
funcionabilidad de crear servicio web de consultas. Sonarqube permite evaluar
la calidad de código de acuerdos del desarrollo de acuerdo a métricas, y su
analizador Sonar-runner, detalles:
Jboss 7.1.1
Java 7
NetBeans 8.0.1
Sonarqube 5.1.2
Sonar-runner 2.4
Windows 7
Google Chrome
Base de datos SQL server 2008 r2.
Todos estos recursos de software pueden ser atendidos gracias a que el área de
infraestructura posee un equipo con características robustas a nivel de hardware
en cuanto a capacidad, almacenamiento, disponibilidad, transaccionabilidad
entre otros.
Factibilidad Legal
Es factible legalmente por que no se incurre ninguna ley como se indica en el
marco legal.
Factibilidad Económica
Es factible económicamente porque el software utilizado para la creación del
servicio web y el control de calidad de desarrollo de proyectos, es de código
abierto sin ningún costo alguno o licenciamiento.
41
Etapas de la metodología del proyecto
La metodología ágil utilizada es Scrum.
Este proyecto científico se divide en 6 sprint:
Sprint 1
Actividades
1 – Se diseñó arquitectura de la aplicación para el servicio web ejecución de
consultas.
2 – Se analizó el código con Sonarqube del servicio web SEP (Servicios de
Ejecución de procedimientos).
Se realizó el análisis de código del servicio web SEP, los reportes HTML ya
fueron enviados para su respectiva revisión y corrección.
3 – Se analizó el código con Sonarqube del servicio web SEC (Servicios de
Ejecución de Consultas).
Se realizó el análisis de código del servicio web SEC, los reportes HTML ya
fueron enviados para su respectiva revisión y corrección.
4 – Se generó reportes pdf en análisis por medio Sonarqube.
Los reportes se generaron en HTML, ya que en pdf era licenciado y se debía de
pagar por el plugin.
5- Se configuró Sonarqube en lo servidores de desarrollo.
Se inició Sonarqube, se debió tener listo la base de datos con collation
equivalente a utf-8 para el inicio de Sonarqube.
Se configuró ell archivo wrapper.conf ubicado en
/opt/sonarqube/conf/wrapper.conf: -porpiedades de java command.
Se configuró las propiedades dentro del archivo de configuración de sonar el
cual está ubicado /opt/sonarqube/conf/sonar.properties: -propiedades de base de
datos.
-propiedades url,host,context
-propiedades de servidor web
-propiedades de java: jdk7+
Se migró Aplicativo sonar-qube al servidor de desarrollo 192.168.100.11.
ruta: /opt/sonar-qube
42
6 – Se configuró el analizador Sonar Runner en el ambiente de desarrollo.
Se estructuró variable entorno para sonar-runner, el cual debe contener el home
de sonar-runner ejemplo: /opt/sonar-runner
Se editó dentro del archivo de /opt/sonar-runner/conf/sonar-runner.properties,
configuración:
-propiedades de base de datos: usuario y password url.
7 – Se creó la base de datos sonar con SQL server 2012 en desarrollo.
Hubo un error y esto retrasó el traspaso de sonar al ambiente de desarrollo
porque no se encontraba el equivalente a utf-8 para SQL server 2012.
Se realizó la creación de base de datos en SQL server 2012 con collation
equivalente a UTF-8, sino se tiene utf-8 nos devolvería error al momento de
levantar sonar y quiera insertar los objetos necesarios para su inicio.
Se solucionó ubicando a la base datos collation de Latin1_General_CS_AS a la
base de datos sonar
8 – Se instaló y configuró el ambiente de Sonarqube.
Se instaló localmente y ahora se encuentra en los servidores de desarrollo los
podemos visualizar con la siguiente url: 192.168.100.11:9000
Sprint 2
Actividades
1- Se corrigió de errores sonar del sec e integración con log4j versión 2.
2- Se analizó por medio de la herramienta Sonarqube el proyecto sec - jdbc
issues de 9.
3- Se realizó el cambio de ambiente de Linux a Windows 7 64bits. (Recién vino
el equipo de 8gb).
4 - Se instaló el java, sonar, mysql y aplicación de Héctor, se dio soporte por
servicio con id 6 (consultas, nombre de paramento diferente al de la tabla de
seguridad).
Se generó script verificación de modelo erwin con el de la base saug consultas.
43
5- Se modificó los proyectos hasta la raíz src/ en adelante ya que no tenía
contemplado el properties desde el root del proyecto src/java/.
Se configuró en NetBeans sonar-runner para que pueda analizar desde el ide
mas no pasar proyecto para analizar dentro del portal de sonar.
6 – Se analizó y se implementó log4j2 en proyecto sec jdbc consultas.
7 – Se elaboró el modelo de diseño del sec (servicio de ejecución de consultas):
Descripción de componentes.
Se realizó el diagrama de flujo, modelo entidad relación, descripción breve de las
entidades y campos.
8 – Se analizó localmente los proyectos entregados el día 03/Sep/2015 de sec y
sec jdbc y modelo a objetos.
9 – Se adicionó los campos ip_cliente, ip_servidor, puerto, usuario que ejecuta la
petición en el request a la tabla de históricos.
10 – Se realizó pruebas localmente, se especificó rutas de properties y logs.
Se envió script del alter table de las columnas y el war, se realizaron pruebas en
producción.
11 – Se realizó el análisis de los proyectos sonar, subirlos a desarrollo. 27 y 31
de agosto subidos.
12 – Se subió proyecto local a desarrollo, dos proyectos al servidor de Linux,
ambiente no estable.
13 – Se dio capacitación sec, configuración de consulta a equipo de base de
datos.
14 – Se realizó la subida de todos los proyectos de manera local, de sec, sep y
sep objetos, ahora tocaría enviar todos los proyectos a nivel local a desarrollo.
Se dejó como servicio el Sonarqube, no se pudo subirlos proyectos por
problemas de Pergem space.
15 – Se configuró y ejecutó los proyectos Sonarqube de manera local a
producción (Todos).
16 – Se investigó el performance de java para Sonarqube.
44
17 – Se configuró la ip de producción en NetBeans de cada uno los integrantes
del grupo de Arq. Para su respectivo análisis Sonarqube.
18 – Se analizó la información de Sonarqube, tunning and performance
Sonarqube Ambiente de producción entregado, migración proyectos a nuevo
ambiente, Sonarqube, Sonar runner.
19- Se evaluó por medio de Sonarqube al sec jdbc investigación de SSL en
jboss 7.
20 – Se configuró los proyectos en el ambiente de producción, se dejó estable el
ambiente de producción Sonarqube.
21 - Se generó script actualizado con los cambios que afectaron a la tabla de
bitácora, campos adicionales tales como ip_servidor, ip_cliente, puerto...etc, se
envió de script y modelo e-r Erwin, pruebas con Sonarqube.
22 – Se configuró sonarqube como servicio de Windows, se enlazó plugin sonar
con la ip de producción 192.168.100.17 dentro de los ide NetBeans 8.0.1.
Se realizó prueba y error del análisis Sonarqube desde NetBeans.
23 – Se creó nuevos campos y probamos, modificación de los métodos para
soportar los nuevos parámetros, método del histórico y del servicio web sec.
Sprint 3
Actividades
1 – Se analizó por medio de la herramienta sonarqube del proyecto sec jdbc
issues 7.
2 – Se validó usuario y clave, colocar encriptación, prueba y error api
saug_encrypts.
3 – Se agregó validación de usuario y contraseña en SEC.
4 – Se agregó encriptación a las claves que se guardaran en el SEC.
5 – Se dio soporte de consultas al área de php incorporación de la validación al
proyecto consulta jpa, clave, encriptación, estado del servicio activo.
6 – Se evaluó y se realizó el respectivo ajuste al proyecto sec jpa a través de la
herramienta Sonarqube.
45
7 – Se agregó validaciones de servicios por usuario en el SEC.
8 - Se agregó validaciones de servicios por fecha en el SEC.
9 - Se agregó validación de usuario y contraseña en SEP.
10 - Se agregó validaciones de servicios por roles en el SEC.
11 - Se analizó y evaluó por medio de Sonarqube al servicio de ejecución de
consultas SEC.
12 – Se agregó validaciones de servicios activos en el SEC.
13 – Se realizó la subida de todos los proyectos de manera local, de sec y sep
objetos, ahora tocaría enviar todos los proyectos a Nivel local a producción.
14 – Se dejó como servicio el sonarqube.
15 – Se migró de ambiente de Linux a Windows 7 64bits.
Se realizó la instalación del java sonar mysql y aplicación de Héctor Ortega, se
dió soporte al servicio con id 6 (consultas, nombre de paramento diferente al de
la tabla de seguridad).
16- Se dio soporte al área de php y se configuró query al área de notificaciones.
17 – Se generó script verificación de modelo erwin con el de la base saug
consultas.
18 - Se generó script actualizado con los cambios que afectaron a la tabla de
bitácora, campos adicionales tales como ip_servidor, ip_cliente, puerto...etc
envió de script y modelo e/r erwin.
Sprint 4
Actividades
1 – Se dio soporte al área de notificaciones, servicio con id cinco.
2 – Se actualizó soap project y se generó script de respaldos de desarrollo.
3 - Se actualizó documentación de consultas con los servicios de notificaciones y
los de base de datos.
46
4 – Se dio soporte al área de notificaciones, se realizó la modificación de
consulta con el id tres, para adicionar campos y crear 3 consultas más.
5 – Se realizó backup de base saug para terminar con las pruebas de proyecto
jpa de consultas, script de consultas, servicios y grupos.
Sprint 5
Actividades
1 – Se realizó prueba y error del proyecto consultas jpa, fecha hasta nula.
2 – Se armó los names querys, actualizar las consultas de desarrollo a
producción actualizar el documentos de consultas versión 4.
3 – Se dejó estable el ambiente de producción de sonarqube, con los últimos
proyectos sec y sep.
4 – Se elaboró el manual de diseño de consultas sec (diagramas de flujo,
diagramas uml y estructura).
Sprint 6
Actividades
1- Término del manual de diseño de sec (servicio de ejecución de consultas).
2- Se dejó estable el ambiente de producción de Sonarqube con proyectos
actualizados de sec y sep.
3- Se añadió nuevo usuario de consultas php al documento de métodos de
consultas.
4- Se añadió servicios 29, 30, 31, 32, 33 en sec_consultas, se modificó servicio
26 con parámetros adicionales.
5- Se actualizó el documento de métodos de consultas con los servicios 29, 30,
31, 32,33, con su respectivo request y response.
6- Se realizó el diagrama general de componentes, diagrama de flujo, diagrama
de Clases y actividades, estructura de tablas y campos.
7 –Se actualizó el documento de métodos de consultas con los servicios 34, 35,
36.
47
Entregables del proyecto
Se adjuntará en el apartado de anexos el manual técnico de la aplicación SEC
excepto el plan de pruebas que será entregado en digital.
CRITERIOS DE VALIDACIÓN DE LA PROPUESTA
Juicio de expertos
La propuesta que se muestra al grupo al director del proyecto. Se de en claro
que el alcance del servicio web de consultas, consiste en facilitar la
comunicación directa a través de la capa de visual y datos, disponibilidad de
ejecución de servicios (consultas SQL mapeadas en las tablas nativas del SEC),
guiados por métricas de control de calidad de código, bitacorizando todo
procesos que ocurra dentro de la aplicación.
Se deja como justificativo que los resultados conseguidos del servicio web
dependen de la información (data) que halla en las tablas del servicio de
ejecución de consultas, ya que es parte de la capa de datos configurar dichos
servicios para ser consumidos.
La propuesta que se muestra al grupo de desarrollo de la capa de negocios por
parte del Scrum Master, se encuentra dividida en 6 sprint, donde el team
considero los requerimientos que se deben desarrollar por cada sprint dentro de
un cierto periodo de tiempo, a continuación se detalla las metas de cada sprint:
1. Análisis, Diseño y Desarrollo del sep y sec versión jdbc.
2. Análisis, Diseño y Desarrollo sep y sec versión jpa.
Soporte de configuraciones a los integrantes de la capa de datos y consumos
de servicios a los integrantes de la capa visual.
3. Agregar validaciones de servicios, encriptación, instalación y pruebas de
monitoreo con logstash y elastisearch y kibana.
48
Soporte de configuraciones a los integrantes de la capa de datos y consumos
de servicios a los integrantes de la capa visual.
4. Mejoras con sonar, generación de gráficos de pastel y barra.
Soporte de configuraciones a los integrantes de la capa de datos y consumos
de servicios a los integrantes de la capa visual.
5. Elaboración documentación, manual de usuario y actualización de manual de
diseño. Soporte de configuraciones a los integrantes de la capa de datos y
consumos de servicios a los integrantes de la capa visual.
6. Documento de Diseño y Desarrollo de la capa rest/json del sep y sec.
Soporte de configuraciones a los integrantes de la capa de datos y consumos
de servicios a los integrantes de la capa visual.
49
PLAN DE PRUEBAS
Informe de Pruebas del SEC con SOAP y XML
Objetos a probar
Consultas.war
Datos de prueba
Cuadro 4 Datos de prueba del servicio web soap
N° XML de Request XML de response
1 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaug</dataSource> <idServicio>10</idServicio> <usuario>PRUEBA</usuario> <clave>Abc123</clave> <parametrosConsulta> <parametros> <usuario>0950016279</usuario> </parametros> </parametrosConsulta> </ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>0</codigoRespuesta> <estado>F</estado> <idHistorico>159120</idHistorico> <mensajeRespuesta>exito</mensajeRes puesta> <respuestaConsulta> <registros> <registro> <correo>[email protected]</correo> </registro> </registros> </respuestaConsulta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
2 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/">
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body>
50
<soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaugRCQ</dataSource> <idServicio>10</idServicio> <usuario>ConsultasPhp</usuario> <clave>hC0b1Xpq512p</clave> <parametrosConsulta> <parametros> <usuario>0950016279</usuario> </parametros> </parametrosConsulta> </ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
<ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>99</codigoRespuesta> <estado>E</estado> <idHistorico>159131</idHistorico> <mensajeRespuesta>Error en ServicioWeb: No se encontro el jndijdbc/consultasSaugRCQ</mensajeRespuesta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
3 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaug</dataSource> <idServicio>10</idServicio> <usuario>ConsultasPhp</usuario> <clave>hC0b1Xpq512p</clave> <parametrosConsulta> <parametros> <usuario>0950016279</usuario> </parametros> </parametrosConsulta> </ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>99</codigoRespuesta> <estado>E</estado> <idHistorico>159136</idHistorico> <mensajeRespuesta>Error en Servicio Web:Servicio no existente o Inactivo</mensajeRespuesta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
4 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/saugConsTmp</data
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return>
51
Source> <idServicio>9</idServicio> <usuario>ConsultasPhp</usuario> <clave>hC0b1Xpq512p</clave> <parametrosConsulta> <parametros> <materiaparalelo>235</materiaparalelo> </parametros> </parametrosConsulta> </ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
<codigoRespuesta>99</codigoRespuesta> <estado>E</estado> <idHistorico>159139</idHistorico> <mensajeRespuesta>Error en Servicio Web:Servicio no existente o Inactivo</mensajeRespuesta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
5 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaug</dataSource> <idServicio>9999</idServicio> <usuario>ConsultasPhp</usuario> <clave>hC0b1Xpq512p</clave> <parametrosConsulta> <parametros> <usuario>0950016279</usuario> </parametros> </parametrosConsulta> </ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>99</codigoRespuesta> <estado>E</estado> <idHistorico>159141</idHistorico> <mensajeRespuesta>Error en ServicioWeb: Servicio no existente o Inactivo</mensajeRespuesta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
6 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaug</dataSource> <idServicio>10</idServicio> <usuario>ConsultasPhp001</usuario>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>99</codigoRespuesta> <estado>E</estado> <idHistorico>159145</idHistorico>
52
<clave>hC0b1Xpq512p</clave> <parametrosConsulta> <parametros> <usuario>0950016279</usuario> </parametros> </parametrosConsulta> </ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
<mensajeRespuesta>Error en ServicioWeb: Error al validar las credenciales o Servicio no disponible</mensajeRespuesta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
7 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaug</dataSource> <idServicio>10</idServicio> <usuario>ConsultasPhp</usuario> <clave>clave</clave> <parametrosConsulta> <parametros> <usuario>0950016279</usuario> </parametros> </parametrosConsulta> </ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>99</codigoRespuesta> <estado>E</estado> <idHistorico>159146</idHistorico> <mensajeRespuesta>Error en ServicioWeb: Error al validar las credenciales o Servicio no disponible</mensajeRespuesta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
8 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaug</dataSource> <idServicio>10</idServicio> <usuario>USUARIO_INACTIVO</usuario> <clave>hC0b1Xpq512p</clave> <parametrosConsulta> <parametros> <usuario>0950016279</usuario> </parametros> </parametrosConsulta>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>99</codigoRespuesta> <estado>E</estado> <idHistorico>159152</idHistorico> <mensajeRespuesta>Error en ServicioWeb: Error al validar las credenciales o Servicio no disponible</mensajeRespuesta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
53
</ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
9 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaug</dataSource> <idServicio>10</idServicio> <usuario>TEST_FECHAS_FUERA_RANGOS</usuario> <clave>hC0b1Xpq512p</clave> <parametrosConsulta> <parametros> <usuario>0950016279</usuario> </parametros> </parametrosConsulta> </ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>99</codigoRespuesta> <estado>E</estado> <idHistorico>159153</idHistorico> <mensajeRespuesta>Error en ServicioWeb: Error al validar las credenciales o Servicio no disponible</mensajeRespuesta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
10 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaug</dataSource> <idServicio>10</idServicio> <usuario>TEST_USUARIO_ROL_INACTIVO</usuario> <clave>hC0b1Xpq512p</clave> <parametrosConsulta> <parametros> <usuario>0950016279</usuario> </parametros> </parametrosConsulta>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>99</codigoRespuesta> <estado>E</estado> <idHistorico>159154</idHistorico> <mensajeRespuesta>Error en ServicioWeb: Error al validar las credenciales o Servicio no disponible</mensajeRespuesta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
54
</ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
11 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaug</dataSource> <idServicio>10</idServicio> <usuario>TEST_USUARIO_ROL_FUERA_RANGO</usuario> <clave>hC0b1Xpq512p</clave> <parametrosConsulta> <parametros> <usuario>0950016279</usuario> </parametros> </parametrosConsulta> </ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>99</codigoRespuesta> <estado>E</estado> <idHistorico>159155</idHistorico> <mensajeRespuesta>Error en ServicioWeb: Error al validar las credenciales o Servicio no disponible</mensajeRespuesta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
12 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaug</dataSource> <idServicio>10</idServicio> <usuario>ConsultasPhp</usuario> <clave>hC0b1Xpq512p</clave> <parametrosConsulta> <parametros> <usuario>0950016279</usuario> </parametros> </parametrosConsulta> </ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>99</codigoRespuesta> <estado>E</estado> <idHistorico>159165</idHistorico> <mensajeRespuesta>Error en Servicio Web:The SELECT permission was denied on the object 'nombres_complestos', database 'saug', schema 'dbo'</mensajeRespuesta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
13 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
55
xmlns:ser="http://servicios.ug.edu.ec/"> <soapenv:Header/> <soapenv:Body> <ser:ejecucionConsulta> <dataSource>jdbc/consultasSaug</dataSource> <idServicio>7</idServicio> <usuario></usuario> <clave></clave> <parametrosConsulta> <parametros> <usuario>4</usuario> <carrera>4</carrera> </parametros> </parametrosConsulta> </ser:ejecucionConsulta> </soapenv:Body> </soapenv:Envelope>
<soap:Body> <ns2:ejecucionConsultaResponse xmlns:ns2="http://servicios.ug.edu.ec/"> <return> <codigoRespuesta>0</codigoRespuesta> <estado>F</estado> <idHistorico>159172</idHistorico> <mensajeRespuesta>EXITO</mensajeRespuesta> <respuestaConsulta> <registros> <registro> <id_ciclo>19</id_ciclo> <ciclo_descripcion>1</ciclo_descripcion> <anio>2016</anio> <valor>3</valor> mensaje>EL TURNO CADUCÓ Jan 12 2016 9:00AM</mensaje> </registro> </registros> </respuestaConsulta> </return> </ns2:ejecucionConsultaResponse> </soap:Body> </soap:Envelope>
Elaborado por: Ricardo Coello Q
Fuente: Grupo de trabajo
Casos de pruebas
Cuadro 5 Casos de prueba del servicio web soap
N° Caso de Prueba
Descripción Del Caso
Resultado Esperado
Observación
1 Ejecutar consulta
Se realiza la configuración del servicio y la consulta correspondiente, dentro de las tablas “sec_servicios” y “sec_consultas”, vinculados a un único usuario
Se retornan los resultados de la consulta configurada. Se devuelve el resultado de la ejecución de la consulta estructurada.
Trabaja correctamente.
2 Datasource Dentro del XML Se devuelve Trabaja
56
no encontrado
request, en el tag dataSource, dentro de este se enviar el jndi, este a su vez NO se encuentra configurado en el Jboss Application Server
mensaje: Error en Servicio Web: No se encontró el jndi YYYY
correctamente.
3 Servicio temporalmente con fechas fuera de tiempo.
Se realiza la configuración del servicio, fecha_desde y fecha_hasta son los campos donde se debe fijar fechas, sea la misma menor o mayor a la actual fecha.
Se devuelve mensaje: Error en Servicio Web: Servicio no existente o Inactivo
Trabaja correctamente.
4 Servicio temporalmente inactivo
Se realiza la configuración del servicio, estado es el campo donde se debe fijar el valor de I “i”
Se devuelve mensaje: Error en Servicio Web: Servicio no existente o Inactivo
Trabaja correctamente.
5 Servicio no encontrado
Dentro del XML request en el tag id servicio, se envía identificador NO configurado en las tabla sec_servicio
Se devuelve mensaje: Error en Servicio Web: Servicio no existente o Inactivo
Trabaja correctamente.
6 Usuario erróneo
Dentro del XML request en el tag usuario, se envía usuario NO configurado.
Se devuelve mensaje: Error en Servicio Web: Error al validar las credenciales o Servicio no disponible
Trabaja correctamente.
7 Clave errónea
Dentro del XML request en el tag clave, se envía clave NO configurada.
Se devuelve mensaje: Error en Servicio Web: Error al validar las credenciales o Servicio no disponible
Trabaja correctamente.
8 Usuario temporalmente inactivo
Dentro del XML request en el tag usuario, se envía usuario con estado inactivo configurado en la tabla de sec_usuarios
Se devuelve mensaje: Error en Servicio Web: Error al validar las credenciales o Servicio no disponible
Trabaja correctamente.
9 Usuario Dentro del XML Se devuelve Trabaja
57
temporalmente con fechas fuera de tiempo
request en el tag usuario, se envía el mismo donde fecha_desde y fecha_hasta son los campos en donde se debe fijar fechas ya sea menor o mayor a la actual fecha.
mensaje: Error en Servicio Web: Error al validar las credenciales o Servicio no disponible
correctamente.
10 Rol vinculado temporalmente inactivo
Se realiza la configuración del servicio, donde el rol vinculado al usuario, posee estado inactivo en la tabla sec_servicios_roles
Se devuelve mensaje: Error en Servicio Web: Error al vaelidar las credenciales o Servicio no disponible
Trabaja correctamente.
11 Rol vinculado temporalmente con fechas fuera de tiempo
Se realiza configuración del servicio, donde el rol vinculado al usuario en sus campos fecha_desde y fecha_hasta tiene fechas menor o mayor a la actual fecha en la configurado en la tabla sec_servicios_roles
Se devuelve mensaje: Error en Servicio Web: Error al validar las credenciales o Servicio no disponible
Trabaja correctamente.
12 Servicio no autorizado
Se realiza la configuración de la consulta y el servicio, pero la tabla donde se estrutuctura la consulta no es identificado por el usuario del servicio web por necesidad de grant.
Se devuelve mensaje: The SELECT permission was denied on the object YYYYYYYYY
Trabaja correctamente.
13 Servicio no lleva autenticación
Se realiza la configuración del servicio y la consulta, autenticación es el campo donde se debe establecer el valor de N, tabla sec_servicios.
Se realiza la ejecución de la consulta configurada con naturalidad.
Trabaja correctamente.
Elaborado por: Ricardo Coello Q
Fuente: Grupo de trabajo
58
Encuestas
A continuación se detalla los resultados obtenidos de las encuestas:
1-¿Usted cree que la gestión de calidad de software es un aspecto
primordial
dentro del desarrollo de software?
Cuadro 6 Pregunta N°1
Datos de la encuesta en base a la pregunta N°1
1-¿Usted cree que la gestión de calidad de software es un aspecto primordial dentro del desarrollo de software?
Si 39
No 0
Total 39
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
Gráfico 6 Pregunta 1 Encuesta
Autor: Ricardo Coello Q Fuente: Cuadro N° 6
De los resultados conseguidos podemos notar que el 100% de la muestra, cree
que la gestión de calidad de software es un aspecto primordial dentro del
desarrollo de software.
59
2-¿Considera Ud. Que es importante evaluar el código fuente dentro del
desarrollo de un software?
Cuadro 7 Pregunta N°2
Datos de la encuesta en base a la pregunta N°2
2-¿Considera Ud. Que es importante evaluar el código fuente dentro del desarrollo de un software?
Si 37
No 2
Total 39
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
Gráfico 7 Pregunta 2 Encuesta
Autor: Ricardo Coello Q Fuente: Cuadro N°7
De los resultados conseguidos podemos notar que el 95% de las personas
encuestadas, consideran que es importante evaluar el código fuente dentro del
desarrollo de un software mientras que el 5% considera que no es tan
importante.
60
3- ¿Usted está de acuerdo en seguir estándares de calidad de desarrollo de
software como ayuda en la implementación de sus aplicaciones?
Cuadro 8 Pregunta N°3
Datos de la encuesta en base a la pregunta N°3
3- ¿Usted está de acuerdo en seguir estándares de calidad de desarrollo de software como ayuda en la implementación de sus aplicaciones?
Totalmente en de acuerdo 8
En desacuerdo 3
Ni de acuerdo ni en desacuerdo
1
De acuerdo 12
Totalmente en acuerdo 15
Total 39
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
Gráfico 8 Pregunta 3 Encuesta
Autor: Ricardo Coello Q Fuente: Cuadro N°8 De los resultados conseguidos podemos notar el 38% están totalmente de
acuerdo en seguir estándares de calidad de software como ayuda en la
implementación de sus aplicaciones. Mientras que el 31% están de acuerdo; el
8% en desacuerdo y los sobrantes que son el 2% ni de acuerdo ni desacuerdo.
61
4- ¿Dentro de su desarrollo de software maneja alguna herramienta de
análisis de código fuente?
Cuadro 9 Pregunta N°4
Datos de la encuesta en base a la pregunta N°4
4- ¿Dentro de su desarrollo de software maneja alguna herramienta de análisis de código fuente?
Si 20
No 19
Total 39
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
Gráfico 9 Pregunta 4 Encuesta
Autor: Ricardo Coello Q Fuente: Cuadro N°9 De los resultados conseguidos podemos notar que el 51% de las personas,
están de acuerdo que dentro de su desarrollo de software manejen alguna
herramienta de análisis de código fuente mientras que el 49% no están de
acuerdo.
62
5- ¿Ud. Está de acuerdo que se utilicen herramientas para la evaluación del
código fuente en el desarrollo de un producto de software?
Cuadro 10 Pregunta N°5
Datos de la encuesta en base a la pregunta N°4
5- ¿Ud. Esta de acuerdo que se utilicen herramientas para la evaluación del código fuente en el desarrollo de un producto de software?
Si 30
No 9
Total 39
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
Gráfico 10 Pregunta 5 Encuesta
Autor: Ricardo Coello Q Fuente: Cuadro N°10 De los resultados conseguidos podemos notar que el 77% de muestra, están de
acuerdo en utilizar herramientas para la evaluación del código fuente en el
desarrollo de un producto de software mientras que el 23% no están de acuerdo.
63
CAPÍTULO IV
Criterios de aceptación del producto o Servicio
Con el compromiso de aceptación del proyecto se tiene la responsabilidad de
realizar seis sprint.
Cuadro 11 Sprints del producto
SPRINT Efectividad
Sprint 1 Análisis, Diseño y Desarrollo del sep y sec versión jdbc.
100%
Sprint 2 Análisis, Diseño y Desarrollo sep y sec versión jpa. Soporte de configuraciones a los integrantes de la capa de datos y consumos de servicios a los integrantes de la capa visual.
100%
Sprint 3 Agregar validaciones de servicios, encriptación, instalación y pruebas de monitoreo con logstash y elastisearch y kibana. Soporte de configuraciones a los integrantes de la capa de datos y consumos de servicios a los integrantes de la capa visual.
100%
Sprint 4 Mejoras con sonar, generación de gráficos de pastel y barra. Soporte de configuraciones a los integrantes de la capa de datos y consumos de servicios a los integrantes de la capa visual.
100%
Sprint 5 Elaboración documentación, manual de usuario y actualización de manual de diseño. Soporte de configuraciones a los integrantes de la capa de datos y consumos de servicios a los integrantes de la capa visual.
100%
Sprint 6 Documento de Diseño y Desarrollo de la capa rest/json del sep y sec. Soporte de configuraciones a los integrantes de la capa de datos y consumos de servicios a los integrantes de la capa visual.
100%
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
64
Entorno de desarrollo de las pruebas
Cuadro 12 Herramientas de software para el desarrollo de las pruebas
Sistema Operativo Windows 7 Professional
Oracle JRE java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) Client VM (build 24.79-b02, mixed mode, sharing)
Base de datos Microsoft SQL Server 2012 R2 32 bits / Mysql 5.6
Web Browser Google Chrome / Mozilla Firefox
IDE NetBeans 8.0.2
Herramienta de calidad de código
sonarqube-5.2
Analizador de código estático sonar-runner-dist-2.4
Servidor de Aplicaciones JBoss AS 7.1.1.Final
Test funcional y rendimiento SoapUI-5.2.1
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
Criterios de rentabilidad del servicio web
Se detalla la estructura del desarrollo de las pruebas sobre el servicio web SOAP
de consultas:
Cuadro 13 Configuración de las pruebas hacia el servicio web soap
Hilos 5
Estrategia Simple
Test Delay 1000
Random 0,5
Limite 60 segundos
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
65
Gráfico 11 Productividad del servicio web
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
Cuadro 14 Criterios de productividad del servicio web
Escenarios Reglas Intervalo
Desarrollo de una consulta
Duración mínima de la respuesta
74 milisegundos
Duración máxima de la respuesta
494 milisegundos
Duración promedio de la respuesta
166,8 milisegundos
Total de ejecuciones 47
Transacción dada por segundos
0,77
Total de fallas 0
Numero de porcentajes de peticiones erradas
0
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
66
Gráfico 12 Rendimiento obtenido del servicio web
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
Criterios de evaluación de código del servicio web
Gracias al uso de la plataforma libre Sonarqube, se realiza el control de la
calidad de código fuente con reglas de codificación en el lenguaje java.
El principal objetivo es minimizar el número de evidencias encontradas por
Sonarqube, obteniendo una mejor calidad de código fuente.
Gráfico 13 Evidencias encontradas del servicio web por SonarQube
Autor: Ricardo Coello Q Fuente: Grupo de trabajo
67
Conclusiones
Se provee una plataforma estable para evaluar código fuente de un servicio web
así como también de diversas aplicaciones y representar mediante diagramas o
estadísticas la mejora continua del código durante un determinado periodo de
tiempo.
Gracias a las reglas evaluadas se asegura que se ha generado un código
mantenible y fácil de comprender en futuros desarrollos en donde se agreguen
nuevas funcionalidades a la aplicación.
Debido a los resultados obtenidos del evaluador de código semántico podemos
concluir que estos informes nos ayudan a la toma de decisiones.
Es necesario seguir utilizando Sonarqube para futuros proyectos de desarrollo
porque nos brinda un código mantenible y optimo a nuestro producto.
Aplicando la metodología Scrum se obtuvo como resultado un producto
terminado y funcional en menos tiempo de lo esperado.
En conclusión se deja constancia que en la capa de negocios en donde se
establecerá todas las reglas (lógica de negocio) que deben cumplirse y será el
medio de comunicación entre la capa de presentación y datos.
Se suministra una bitácora de incidencias donde se registra las ocurrencias
sostenidas dentro de la aplicación o proyecto.
68
Recomendaciones
Es recomendable llevar una herramienta que nos apoye a la evaluación de
código fuente en los desarrollos dentro de un proyecto de software ya que de
esta manera podemos ajustar la programación del producto y mejorar su
rendimiento funcional.
Asegurar que los futuros proyectos de software implementen una herramienta de
evaluación de calidad de código fuente como lo es Sonarqube, ya que este
control será de beneficio para los desarrolladores y líderes de software.
Es recomendable contar con un equipo físico que tenga las características
mínimas (2GB de RAM) para poder ejecutar SonarQube de manera eficiente.
Es recomendable instalar el plugin de Sonarqube en los IDE donde se desarrolla
el software, ya que podemos llevar un control de calidad de la fuente, y corregir
la mala práctica de programación que se encuentre en la etapa de desarrollo.
Seguir utilizando la metodología Scrum.
Se recomienda manejar la capa de presentación y la de datos en forma
independiente, ya que cuando se requiera realizar una migración de base de
datos la capa de presentación no debe de ser afectada.
Es recomendable utilizar logs o bitácoras de incidencias debido a que nos facilita
información relevante, referente a la salud de nuestra aplicación.
69
Bibliografía Alaimo, D. M. (Octubre de 2013). Proyectos agiles con Scrum : flexibilidad, .
Obtenido de https://www.google.com.ec/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&
Alvarado, L. N. (7 de Febrero de 2012). Calidad - http://es.slideshare.net. Obtenido de http://es.slideshare.net/lidizzg/definicion-de-calidad-y-calidad-de-software
Complejidad Ciclomática - https://es.wikipedia.org. (s.f.). Obtenido de https://es.wikipedia.org/wiki/Complejidad_ciclom%C3%A1tica
Coordinación de servicios web: de las aplicaciones a los modelos formales - http://dialnet.unirioja.es. (s.f.). Obtenido de http://dialnet.unirioja.es/descarga/tesis/18607.pdf
Ejemplo mensajes SOAP - http://bibing.us.es. (s.f.). Obtenido de http://bibing.us.es/proyectos/abreproy/11247/fichero/Memoria%252F7-SOAP+y+WSDL.pdf
Especificacion de Servicio Web - http://es.slideshare.net. (s.f.). Obtenido de http://es.slideshare.net/barkuz/servicios-web-4766736
Garzás, J. (1 de Marzo de 2012). Herramientas de calidad de software - http://www.javiergarzas.com. Obtenido de http://www.javiergarzas.com/2012/03/herramientas-de-calidad-software.html
Guía Breve de Servicios Web - http://www.w3c.es. (s.f.). Obtenido de http://www.w3c.es/Divulgacion/GuiasBreves/ServiciosWeb
Hispano, S. (s.f.). Complejidad - https://sonarqubehispano.org/. Obtenido de https://sonarqubehispano.org/pages/viewpage.action?pageId=4980840
Hispano, S. (s.f.). Diseño y arquitectura - https://sonarqubehispano.org/. Obtenido de https://sonarqubehispano.org/pages/viewpage.action?pageId=4980840
Hispano, S. (s.f.). Duplicaciones - https://sonarqubehispano.org/. Obtenido de https://sonarqubehispano.org/pages/viewpage.action?pageId=4980840
Servicios Web - http://es.slideshare.net. (s.f.). Obtenido de http://es.slideshare.net/barkuz/servicios-web-4766736
Servicios web: beneficios, desafíos y unico, desarrollo visual - http://www.altova.com/. (s.f.). Obtenido de http://www.altova.com/whitepapers/webservices.pdf
SOAP Y WSDL - bibing.us.es. (s.f.). Obtenido de bibing.us.es/proyectos/.../Memoria%252F7-SOAP+y+WSDL.pdf
SonarQube - https://unpocodejava.wordpress.com. (3 de Diciembre de 2013). Obtenido de https://unpocodejava.wordpress.com/2013/12/03/que-es-sonarqube/
The Java EE 6 Tutorial - http://docs.oracle.com. (2013). Obtenido de http://docs.oracle.com/javaee/6/tutorial/doc/gijvh.html
Un Mejor Scrum - http://media.agile42.com. (s.f.). Obtenido de http://media.agile42.com/do-better-scrum/Un-mejor-Scrum-2.pdf
Ventajas y desventajas del servicio web - http://es.slideshare.net. (s.f.). Obtenido de http://es.slideshare.net/barkuz/servicios-web-4766736
Vortexbird. (5 de Mayo de 2015). Log en Aplicaciones Java y JavaEE - http://es.slideshare.net. Obtenido de http://es.slideshare.net/vortexbird/log-en-aplicaciones-java-y-
70
javaee?qid=a0c5033b-8881-4f05-8f0f-a1261ef8ce63&v=default&b=&from_search=4
XML Web Services - www.w3schools.com. (2016). Obtenido de http://www.w3schools.com/xml/xml_services.asp
Libros
G. Ann Campbell, P. P. (2013). SonarQube in Action. Obtenido de https://books.google.es/books?id=hTDFNAEACAAJ&dq=sonarqube+action&hl=es&sa=X&ved=0CCEQ6AEwAGoVChMI9I2JvuC1xwIVS6UeCh0ZxQe8 Robert Liguori, P. L. (8 de Abril de 2014 ). Java 8 Pocket Guide. Obtenido de https://books.google.es/books?id=0kNOAwAAQBAJ&hl=es&source=gbs_navlinks_s Acharya, S. (15 de Julio de 2014). Mastering Unit Testing Using Mockito and
JUnit. Obtenido de https://books.google.es/books?id=zVoHBAAAQBAJ&dq=Sonarqube&hl=es&source=bs_navlinks_s Alaimo, D. M. (Octubre de 2013). Proyectos agiles con Scrum : flexibilidad, aprendizaje, innovcacion y colaboracion en contextos complejos. Obtenido de https://bitbucket.org/presik/trytonpsk_hotel/downloads/kleer-proyecto-agiles-con-scrum.pdf. Hundermark, P. (noviembre de 2009). Un Mejor Scrum. Obtenido de http://media.agile42.com/do-better-scrum/Un-mejor-Scrum-2.pdf Novatica: Revista de la Asociacion de Tecnicos de Informatica. (Septiembre –
octubre 2006, año 2008). Obtenido de http://www.researchgate.net/publication/28142639_Los_Servicios_Web_desde_u
n_punto_de_vista_empresarial_y_acadmico
71
ANEXOS
Anexos 1
Formato de la encuesta
ENCUESTA
Marque con una X la respuesta correcta 1. ¿Usted cree que la gestión de calidad de software es un aspecto primordial dentro del desarrollo de software? Sí No 2. ¿Considera Ud. que es importante evaluar el código fuente dentro del desarrollo de un software? Sí No 3. ¿Usted está de acuerdo en seguir estándares de calidad de desarrollo de software como ayuda en la Implementación de sus aplicaciones? Totalmente en desacuerdo En desacuerdo Ni de acuerdo ni en desacuerdo De acuerdo Totalmente de acuerdo 4. ¿Dentro de su desarrollo de software maneja alguna herramienta de análisis de código fuente? Sí No 5. ¿Ud. está de acuerdo que se utilicen herramientas para la evaluación del código fuente en el desarrollo de un producto de software? Sí No
MANUAL DE USUARIO DEL
SEC
Facultad de Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
2
TABLA DE CONTENIDO
Objetivo ............................................................................................................................ 5
Explicación de las Tablas ........................................................................................ 5
Definición de la tabla sec_grupos_servicios .................................................. 5
Definición de la tabla sec_historial_consultas .............................................. 6
Definición de la tabla sec_consultas ................................................................ 7
Definición de la tabla sec_servicios ................................................................. 8
Definición de la tabla sec_roles ......................................................................... 9
Definición de la tabla sec_servicios_roles ...................................................... 9
Definición de la tabla sec_servicios_usuarios............................................. 10
Definición de la tabla sec_usuarios ................................................................ 10
Definición de la tabla sec_usuarios_roles .................................................... 11
Configuración de un nuevo Servicio .................................................................. 11
Configuración de Servicio de Consultas ....................................................... 11
Configuración de Servicio Automático .......................................................... 11
Requisitos necesarios para activar el Servicio ............................................ 13
Configuración de un nuevo usuario con encriptación. ................................. 14
Configuración password Encriptado con 3DES .......................................... 14
Configuración password Encriptado con BLOWFISH ............................... 15
Verificación que el Servicio se encuentre configurado y activo. ................ 15
Prueba del nuevo servicio haciendo uso del soapui ................................. 15
Revisión de Bitácora por éxito y por error en tablas y en log de archivo 16
Pasos para realizar el consumo del SEC con REST/JSON ....................... 17
Errores comunes ...................................................................................................... 22
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
3
INDICE DE GRAFICOS
GRÁFICO 1 Tabla sec_grupos_servicios ................................................................ 5
GRÁFICO 2 Tabla sec_historial_consultas ............................................................. 6
GRÁFICO 3 Tabla sec_consultas ............................................................................... 7
GRÁFICO 4 Tabla sec_servicios ................................................................................ 8
GRÁFICO 5 Tabla sec_roles ........................................................................................ 9
GRÁFICO 6 Tabla sec_servicios_roles .................................................................... 9
GRÁFICO 7 Tabla sec_servicios_usuarios ........................................................... 10
GRÁFICO 8 Tabla sec_usuarios ............................................................................... 10
GRÁFICO 9 Tabla sec_usuarios_roles ................................................................... 11
GRÁFICO 10 Ejecución de un servicio de consulta ........................................... 16
GRÁFICO 11 Especificar REST para el SEC ......................................................... 17
GRÁFICO 12 URL del SEC ......................................................................................... 18
GRÁFICO 13 Especificar post y json para el SEC .............................................. 18
GRÁFICO 14 Request y Response del SEC .......................................................... 21
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
4
INDICE DE CUADRO
CUADRO 1 Parámetros del SEC .............................................................................. 12
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
5
Objetivo
Presentar una guía sencilla para el usuario explicando el funcionamiento del
servicio web del SEC (Servicio Ejecuta Consultas) y las configuraciones
necesarias para el correcto funcionamiento.
Explicación de las Tablas
A continuación se detallan las tablas usadas en el SEC con sus respectivas
definiciones:
Definición de la tabla sec_grupos_servicios
Esta tabla agrupa los servicios para tener una administración de las
configuraciones de consultas que se encuentren activos.
GRÁFICO 1 Tabla sec_grupos_servicios
Elaborado por: José Luis Sosa Barzola
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
6
Definición de la tabla sec_historial_consultas
Esta tabla graba un registro de las ejecuciones realizadas al SEC, aquí se
grabara la información de los parámetros recibidos y los parámetros
devueltos así como si la ejecución fue exitosa o no.
GRÁFICO 2 Tabla sec_historial_consultas
Elaborado por: José Luis Sosa Barzola
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
7
Definición de la tabla sec_consultas
En esta tabla se encuentra las consultas configuradas con sus parámetros,
la cantidad de parámetros que se configuran.
GRÁFICO 3 Tabla sec_consultas
Elaborado por: José Luis Sosa Barzola
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
8
Definición de la tabla sec_servicios
En esta tabla tendremos las configuraciones de cada uno de los servicios
de consultas.
GRÁFICO 4 Tabla sec_servicios
Elaborado por: José Luis Sosa Barzola
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
9
Definición de la tabla sec_roles
En esta tabla tendremos las configuraciones de los roles.
GRÁFICO 5 Tabla sec_roles
Elaborado por: José Luis Sosa Barzola
Fuente: Datos del proyecto
Definición de la tabla sec_servicios_roles
En esta tabla tendremos las configuraciones de los roles, asignados a un
servicio.
GRÁFICO 6 Tabla sec_servicios_roles
Elaborado por: José Luis Sosa Barzola
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
10
Definición de la tabla sec_servicios_usuarios
En esta tabla tendremos las configuraciones de los usuarios, asignados a
un servicio.
GRÁFICO 7 Tabla sec_servicios_usuarios
Elaborado por: José Luis Sosa Barzola
Fuente: Datos del proyecto
Definición de la tabla sec_usuarios
En esta tabla tendremos las configuraciones de los usuarios.
GRÁFICO 8 Tabla sec_usuarios
Elaborado por: José Luis Sosa Barzola
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
11
Definición de la tabla sec_usuarios_roles
En esta tabla tendremos las configuraciones de los usuarios
asigandos a un rol.
GRÁFICO 9 Tabla sec_usuarios_roles
Elaborado por: José Luis Sosa Barzola
Fuente: Datos del proyecto
Configuración de un nuevo Servicio
Se configuraran los servicios de consultas de forma automática.
Configuración de Servicio de Consultas
Para realizar la configuración manualmente debemos seguir el siguiente
orden de inserción en las tablas:
procedimiento.crea_servicio_consulta
Configuración de Servicio Automático
Para configurar un nuevo servicio de manera automática es necesario
ejecutar el siguiente procedimiento almacenado: crea_servicio_consulta
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
12
A continuación se explica los parámetros de entrada para la ejecución del
procedimiento:
CUADRO 1 Parámetros del SEC
Parámetros de Entrada del SEC
crea_servicio_consulta
Nombre Descripción
@nombre_servicio Ingresar el nombre con el cual identificaremos al
servicio.
@descripcion_servicio Ingresar una descripción del Servicio a
configurar.
@nombre_consulta Se deberá ingresar el nombre de la consulta que
se requiera configurar.
@descripcion_consulta Descripción de la consulta almacenada.
@consulta Query de la consulta con sus respectivos
parámetros
@cantidad_parametros Cantidad de parámetros a configurar de 0 a n
parámetros con símbolo ?
@id_grupo Id del grupo al que se va a pertenecer el servicio.
Elaborado por: José Luis Sosa Barzola
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
13
Se adjunta ejemplo de ejecución del procedimiento almacenado.
USE [saugTemporal] GO DECLARE @return_value int, @id_servicio int, @id_consulta int, @codigo_salida int, @mensaje_salida varchar(200) EXEC @return_value = [dbo].[crea_servicio_consulta] @nombre_servicio = N'Notas', @descripcion_servicio = N'Notas del Estudiante', @nombre_consulta = N'Notas', @descripcion_consulta = N'devuelve Notas', @consulta = N'select nombre from estudiante where id = ?', @cantidad_parametros = 1, @id_grupo = 2, @id_servicio = @id_servicio OUTPUT, @id_consulta = @id_consulta OUTPUT, @codigo_salida = @codigo_salida OUTPUT, @mensaje_salida = @mensaje_salida OUTPUT SELECT @id_servicio as N'@id_servicio', @id_consulta as N'@id_consulta', @codigo_salida as N'@codigo_salida', @mensaje_salida as N'@mensaje_salida' SELECT 'Return Value' = @return_value GO
Requisitos necesarios para activar el Servicio
Al terminar el registro del servicio se deberá dar el grant del la consulta que
se configuro.
A continuación se detalla la sentencia a ejecutar:
grant execute on nombre_tabla to nombre_de_usuario;
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
14
Configuración de un nuevo usuario con encriptación.
Existen dos métodos para la encriptación del password de los usuarios, se
detalla cada uno de ellos, aunque el que se usa es el 3DES.
Configuración password Encriptado con 3DES
Para Encriptar el password del usuario con el método 3DES se debe
ejecutar mediante consola la librería saug_1_0.jar.
La línea de ejecución en el CMD es la siguiente:
java -jar saug_1_0.jar "D" "ClaveEnClaro" "91BA835FD6CD6A1C"
"D59B3CA154FC1BCE" "D59B3CA154FC1BCE"
A continuación se detalla cada parámetro para la ejecución de la librería
por consola:
Primer Parámetro.- Indica el tipo de encriptación, deberá ir el valor
“D” que indica que es 3DES
Segundo Parámetro.- Deberá ir la clave que se requiere encriptar.
Tercer Parámetro.- Llave 1 de encriptación en hexadecimal, la
longitud es de 16 caracteres.
Cuarto Parámetro.- Llave 2 de encriptación en hexadecimal, la
longitud es de 16 caracteres.
Quinto Parámetro.- Llave 3 de encriptación en hexadecimal, la
longitud es de 16 caracteres.
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
15
Configuración password Encriptado con BLOWFISH Para Encriptar el password del usuario con el método blowfish se debe
ejecutar mediante consola la librería saug_1_0.jar.
La línea de ejecución en el CMD es la siguiente:
java -jar saug_1_0.jar "B" "claveEnClaro" "1jherp9jnfrjqp"
"1fgt7uj8"
A continuación se detalla cada parámetro para la ejecución de la librería
por consola:
Primer Parámetro.- Indica el tipo de encriptación, deberá ir el valor
“B” que indica que es blowfish.
Segundo Parámetro.- Deberá ir la clave que se requiere encriptar.
Tercer Parámetro.- Llave 1 de encriptación, la longitud máxima es
de 14 caracteres.
Cuarto Parámetro.- Llave 2 de encriptación, la longitud es de 8
caracteres.
Verificación que el Servicio se encuentre configurado y
activo.
Prueba del nuevo servicio haciendo uso del soapui
Cuando el servicio este configurado en las tablas del SEC, se deberá
realizar la prueba con la herramienta SOAPUI, a continuación se anexa un
ejemplo de la ejecución del servicio:
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
16
GRÁFICO 10 Ejecución de un servicio de consulta
Elaborado por: José Luis Sosa Barzola
Fuente: Datos del proyecto
Revisión de Bitácora por éxito y por error en tablas y en
log de archivo
Para la revisión de las bitácoras en las tablas del SEC se debe distinguir por los
siguientes querys:
Revisión por éxito
select * from saug.consultas.sec_historial_consultas where codigo_respuesta = 0
Revisión por error
select * from saug.consultas.sec_historial_consultas where codigo_respuesta != 0
Para la revisión de las bitácoras en el archivo log del SEC, se deberá tomar en
cuenta los siguientes parámetros:
Ruta del Archivo: /aplicaciones/secjpa/logs
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
17
Nombre del Archivo: secjpa.log
Sección del manual de usuario del SEC
Pasos para realizar el consumo del SEC con REST/JSON
Abrir la aplicación soapui y Escoger la opción Rest
GRÁFICO 11 Especificar REST para el SEC
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Aparecerá la venta New Rest Project, en la caja de texto URI colocar la ruta del
servicio web
http://192.168.100.11:9080/consultasJPA/rest/servicioConsultas
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
18
GRÁFICO 12 URL del SEC
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Luego se nos mostrara la ventana de request, aquí seleccionamos en la opción
Method: POST, en la opcion Media Type especificamos: application/json.
GRÁFICO 13 Especificar post y json para el SEC
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
19
En el área de texto especificamos el json que del servicio que deseamos enviar:
{
"datosServicio": {
"dataSource": "jdbc/saug",
"idServicio": "6",
"usuario": "PRUEBA",
"clave": "Abc123",
"parametrosConsulta": {
"parametros": { "nombre": "Héctor" }
}
}}
El json consta de los siguientes elementos:
dataSource.- Es el jndi que identifica a la base de datos donde se
ejecutara la consulta
idServicio.- Es el identificador del servicio que deseamos ejecutar
usuario.- Es el usuario del servicio.
clave.- Es la clave del usuario del servicio
parametrosConsultas.- Dentro de este elemento se especificara el un
arreglo de parámetros de entrada para el servicio que se desea
ejecutar.
Una vez especificado el json de request, procederemos a presionar el
botón play, y el resultado la ejecución del servicio podremos observarlo en
el área detexto del response.
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
20
{"respuestaServicio": {
"codigoRespuesta": "0",
"mensajeRespuesta": "EXITO",
"estado": "F",
"respuestaConsulta": {"elementos": {"mielemento": [
{
"id_persona": "1",
"nombre": "Héctor",
"apellido": "ortega",
"fecha_nacimiento": "1990-01-27 00:00:00",
"fecha_nacimiento2": "1990-01-27 00:00:00.0",
"sueldo": "20.24",
"sueldo2": "12.56"
},
{
"id_persona": "2",
"nombre": "Héctor ",
"apellido": "gonzalez",
"fecha_nacimiento": "2012-01-27 00:00:00",
"fecha_nacimiento2": "",
"sueldo": "5000.24",
"sueldo2": "12.30"
}
]}},
"idHistorial": "528"
}}
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
21
La respuesta JSON tendrá los siguientes elementos:
codigoRespuesta.- Es el código que indica si la respuesta fue exitosa o
no.
mensajeRespuesta: Es el mensaje que indica ÉXITO si es que no se
presentó ningún inconveniente y caso contrario el detalle del error que se
ha generado.
Estado: Devolverá el valor F si es que no se generó algún inconveniente
caso contrario tendrá valor A.
respuestaConsulta: Contiene los registro que retorno la consulta
ejecutada.
idHistorial: Retorna el id que representa a la transacción en la tabla
histórica.
GRÁFICO 14 Request y Response del SEC
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
22
Errores comunes
A continuación se presentan los errores comunes al trabajar con los servicios del
SEC.
No se dieron los permisos al usuario.
No se encuentra configurado correctamente el dataSource.
Están enviando la cantidad de parámetros incorrectos.
Se configuro mal los parámetros no incluyendo el ?
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
23
MANUAL TÉCNICO DEL SEC Facultad de Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
24
Tabla de Contenido
Tabla de Contenido ..................................................................................................... 24
INDICE DE GRÁFICOS ................................................................................................ 25
INDICE DE CUADROS ................................................................................................. 26
Objetivo del SEC .......................................................................................................... 27
Descripción del Componente ................................................................................... 27
Especificaciones Técnicas .................................................................................... 27
Diagrama de Flujo .................................................................................................... 28
Descripciones de Estructuras .................................................................................. 33
Modelo Entidad Relación ....................................................................................... 33
Descripción de tablas ............................................................................................. 34
Descripción detallada de los campos ................................................................ 35
Procedimientos Almacenados.............................................................................. 40
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
25
ÍNDICE DE GRÁFICOS
GRÁFICO 1 Diagrama general de componentes ................................................. 27
GRÁFICO 2 Diagrama de flujo del SEC .................................................................. 28
GRÁFICO 3 Diagrama de Clases .............................................................................. 29
GRÁFICO 4 Diagrama detallado de red .................................................................. 30
GRÁFICO 5 Diagrama actividades............................................................................... 31
GRÁFICO 6 Diagrama de secuencias ..................................................................... 32
GRÁFICO 7 Diagrama de estructuras ..................................................................... 33
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
26
ÍNDICE DE CUADROS
CUADRO 1 Descripción de las tablas ..................................................................... 34
CUADRO 2 Descripción de la tabla sec_grupos_servicios .............................. 35
CUADRO 3 Descripción de la tabla sec_historial_consultas ........................... 36
CUADRO 4 Descripción de la tabla sec_consultas ........................................... 36
CUADRO 5 Descripción de la tabla sec_servicios .............................................. 37
CUADRO 6 Descripción de la tabla sec_roles..................................................... 37
CUADRO 7 Descripción de la tabla sec_servicios_roles .................................. 38
CUADRO 8 Descripción de la tabla sec_servicios_usuarios ........................... 38
CUADRO 9 Descripción de la tabla sec_usuarios_roles ................................... 39
CUADRO 10 Descripción de la tabla sec_usuarios ............................................ 39
CUADRO 11 Descripción del procedimiento crea_servicio_consulta ........... 40
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
27
Objetivo del SEC
El componente tiene como finalidad brindar un servicio que permita ejecutar
consultas a una base de datos. Estas consultas deben ser configuradas
previamente antes de poder ser utilizados.
Descripción del Componente
Especificaciones Técnicas
A continuación se detallan los requerimientos necesarios que requiere el
componente del Servicio de Ejecución de Consultas:
Java 7
Jboss AS 7.1
NetBeans 8.0.1
Diagrama general de componentes
GRÁFICO 1 Diagrama general de componentes
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
28
Diagrama de Flujo
GRÁFICO 2 Diagrama de flujo del SEC
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
29
UML Diagrama de Clases (Entidades JPA)
GRÁFICO 3 Diagrama de Clases
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
30
UML: Diagrama Detallado de Red
GRÁFICO 4 Diagrama detallado de red
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
31
UML Diagrama de Actividades
GRÁFICO 5 Diagrama actividades
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
32
UML Diagrama de Secuencias
GRÁFICO 6 Diagrama de secuencias
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
33
Descripciones de Estructuras
Modelo Entidad Relación
GRÁFICO 7 Diagrama de estructuras
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
34
Descripción de tablas
CUADRO 1 Descripción de las tablas
TABLA DESCRIPCIÓN
SEC_GRUPOS_SERVICIOS Permite definir el catálogo de grupos de
servicios.
SEC_HISTORIAL_CONSULTAS Bitácora de transacciones procesadas por
el Web Service
SEC_SERVICIOS Servicios que ejecutara el web service
SEC_SERVICIOS_USUARIOS Servicios por usuario
SEC_CONSULTAS Configuración de la consulta
SEC_USUARIOS Usuarios del servicio
SEC_SERVICIOS_ROLES Servicios por roles
SEC_USUARIOS_ROLES Usuario por Roles
SEC_ROLES Usuario por Roles
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
35
Descripción detallada de los campos
CUADRO 2 Descripción de la tabla sec_grupos_servicios
SEC_GRUPOS_SERVICIOS
CAMPO TIPO
PK ID_GRUPO INT
DESCRIPCIÓN VARCHAR
NOMBRE VARCHAR
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
36
CUADRO 3 Descripción de la tabla sec_historial_consultas
SEC_HISTORIAL_CONSULTAS
CAMPO TIPO
PK ID_HISTORIAL INT
ID_SERVICIO INT
ID_CONSULTA INT
FECHA_INGRESO_HISTORIAL DATETIME2
FECHA_INICIO_CONSULTA DATETIME2
FECHA_FIN_CONSULTA DATETIME2
FECHA_INICIO DATETIME2
FECHA_FIN DATETIME2
PARAMETROS_RECIBIDOS VARCHAR
RESPUESTA_RETORNADA VARCHAR
ESTADO VARCHAR
CODIGO_RESPUESTA INT
MENSAJE_RESPUESTA VARCHAR
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
CUADRO 4 Descripción de la tabla sec_consultas
SEC_CONSULTAS
CAMPO TIPO
PK ID_CONSULTA INT
NOMBRE VARCHAR
SENTENCIA VARCHAR
CANTIDAD_PARAMETROS VARCHAR
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
37
CUADRO 5 Descripción de la tabla sec_servicios
SEC_SERVICIOS
CAMPO TIPO
PK ID_SERVICIO INT
FK ID_GRUPO INT
NOMBRE VARCHAR
DESCRIPCION VARCHAR
FECHA_DESDE DATETIME2
FECHA_HASTA DATETIME2
ESTADO VARCHAR
AUTENTICACION VARCHAR
FORMATO_SALIDA VARCHAR
SEPARADOR_PARAMETRO VARCHAR
SEPARADOR_VALOR VARCHAR
SEPARADOR_REGISTRO VARCHAR
ETIQUETA_RAIZ VARCHAR
ETIQUETA_REGSTRO VARCHAR
FK ID_CONSULTA INT
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
CUADRO 6 Descripción de la tabla sec_roles
SEC_ROLES
CAMPO TIPO
PK ID_ROL INT
NOMBRE VARCHAR
DESCRIPCION VARCHAR
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
38
CUADRO 7 Descripción de la tabla sec_servicios_roles
SEC_SERVICIOS_ROLES
CAMPO TIPO
FK ID_ROL INT
FK ID_SERVICIO INT
FECHA_DESDE DATETIME2
FECHA_HASTA DATETIME2
ESTADO VARCHAR
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
CUADRO 8 Descripción de la tabla sec_servicios_usuarios
SEC_SERVICIOS_USUARIOS
CAMPO TIPO
FK ID_SERVICIO INT
FK ID_USUARIO INT
FECHA_DESDE DATETIME2
FECHA_HASTA DATETIME2
ESTADO VARCHAR
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
39
CUADRO 9 Descripción de la tabla sec_usuarios_roles
SEC_USUARIOS_ROLES
CAMPO TIPO
FK ID_ROL INT
FK ID_USUARIO INT
FECHA_DESDE DATETIME2
FECHA_HASTA DATETIME2
ESTADO VARCHAR
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
CUADRO 10 Descripción de la tabla sec_usuarios
SEC_USUARIOS
CAMPO TIPO
PK ID_USUARIO INT
NOMBRE VARCHAR
CLAVE VARCHAR
DESCRIPCION VARCHAR
FECHA_DESDE DATETIME2
FECHA_HASTA DATETIME2
ESTADO VARCHAR
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
40
Procedimientos Almacenados
CUADRO 11 Descripción del procedimiento crea_servicio_consulta
CREA_SERVICIO_CONSULTA
PARAMETROS TIPOS DESCRIPCION
NOMBRE_SERVICIO VARCHAR(50) Nombre del nuevo servicio.
DESCRIPCION_SERVICIO VARCHAR(2000) Breve descripción del
servicio.
NOMBRE_CONSULTA VARCHAR(50) Nombre de la consulta.
DESCRIPCION_CONSULTA VARCHAR(2000) Breve descripción de la
consulta.
CONSULTA VARCHAR(8000) Consulta sql
CANTIDAD_PARAMETROS INT Numero de parámetros
que recibe la consulta
ID_GRUPO INT Grupo al que pertenece el
servicio
ID_SERVICIO INT OUT Código del servicio
generado.
ID_CONSULTA INT OUT Código de la consulta
generado.
CODIGO_SALIDA INT OUT Código de ejecución de la
consulta.
MENSAJE_SALIDA VARCHAR(200)
OUT
Mensaje de ejecución de la
consulta.
Elaborado por: Ricardo Coello Quezada
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
41
MANUAL DE USUARIO DEL
SEP
Facultad de Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
42
Tabla de contenido
Objetivo .......................................................................................................................... 46
Explicación de las Tablas .......................................................................................... 46
Definición de la tabla sep_grupos_servicios ............................................... 46
Definición de la tabla sep_historial_objetos ................................................. 47
Definición de la tabla sep_objetos_bd ........................................................... 48
Definición de la tabla sep_parametros_objetos_bd ................................... 48
Definición de la tabla sep_roles ....................................................................... 49
Definición de la tabla sep_servicio_roles ...................................................... 49
Definición de la tabla sep_servicio_usuarios............................................... 50
Definición de la tabla sep_servicios ............................................................... 50
Definición de la tabla sep_tipos_datos .......................................................... 51
Definición de la tabla sep_usuarios ................................................................ 51
Configuración de Un nuevo Servicio ...................................................................... 52
Configuración de Servicio Manual .................................................................. 52
Configuración de Servicio Automático .......................................................... 53
Requisitos necesarios para activar el Servicio ............................................ 55
Configuración de Un nuevo usuario con encriptación. ..................................... 56
Configuración password Encriptado con 3DES .......................................... 56
Configuración password Encriptado con BLOWFISH ............................... 57
Verificación que el Servicio se encuentre configurado y activo. .................... 58
Prueba del nuevo servicio haciendo uso del soapui ................................. 58
Revisión de Bitácora por éxito y por error en tablas y en log de archivo
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
43
.................................................................................................................................. 58
Sección del manual de usuario del SEP ................................................................ 59
Pasos para realizar el consumo del SEP con REST/JSON ....................... 59
Sección del manual de usuario del Componente de Monitoreo...................... 64
Logstash ................................................................................................................. 64
Elasticsearch ......................................................................................................... 72
Kibana ..................................................................................................................... 75
Errores comunes .......................................................................................................... 92
Frequently Asked Questions .................................................................................... 92
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
44
Índice de Gráficos
Gráfico 1 ......................................................................................................................... 46
Gráfico 2 ......................................................................................................................... 47
Gráfico 3 ......................................................................................................................... 48
Gráfico 4 ......................................................................................................................... 48
Gráfico 5 ......................................................................................................................... 49
Gráfico 6 ......................................................................................................................... 49
Gráfico 7 ......................................................................................................................... 50
Gráfico 8 ......................................................................................................................... 50
Gráfico 9 ......................................................................................................................... 51
Gráfico 10 ....................................................................................................................... 51
Gráfico 11 ....................................................................................................................... 58
Gráfico 12 ....................................................................................................................... 59
Gráfico 13 ....................................................................................................................... 60
Gráfico 14 ....................................................................................................................... 60
Gráfico 15 ....................................................................................................................... 63
Gráfico 16 ....................................................................................................................... 64
Gráfico 17 ....................................................................................................................... 65
Gráfico 18 ....................................................................................................................... 66
Gráfico 19 ....................................................................................................................... 67
Gráfico 20 ....................................................................................................................... 73
Gráfico 21 ....................................................................................................................... 74
Gráfico 22 ....................................................................................................................... 75
Gráfico 23 ....................................................................................................................... 76
Gráfico 24 ....................................................................................................................... 76
Gráfico 25 ....................................................................................................................... 77
Gráfico 26 ....................................................................................................................... 77
Gráfico 27 ....................................................................................................................... 78
Gráfico 28 ....................................................................................................................... 79
Gráfico 29 ....................................................................................................................... 80
Gráfico 30 ....................................................................................................................... 81
Gráfico 31 ....................................................................................................................... 82
Gráfico 32 ....................................................................................................................... 83
Gráfico 33 ....................................................................................................................... 83
Gráfico 34 ....................................................................................................................... 84
Gráfico 35 ....................................................................................................................... 85
Gráfico 36 ....................................................................................................................... 86
Gráfico 37 ....................................................................................................................... 87
Gráfico 38 ....................................................................................................................... 88
Gráfico 39 ....................................................................................................................... 88
Gráfico 40 ....................................................................................................................... 89
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
45
Gráfico 41 ....................................................................................................................... 90
Gráfico 42 ....................................................................................................................... 90
Gráfico 43 ....................................................................................................................... 91
Gráfico 44 ....................................................................................................................... 91
Gráfico 45 ....................................................................................................................... 92
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
46
Objetivo
Presentar una guía sencilla para el usuario explicando el funcionamiento del
servicio web del SEP (Servicio Ejecuta Procedimientos) y las configuraciones
necesarias para el correcto funcionamiento.
Explicación de las Tablas
A continuación se detallan las tablas usadas en el SEP con sus respectivas
definiciones:
Definición de la tabla sep_grupos_servicios
Esta tabla agrupa los servicios para tener una administración de las
configuraciones de procedimientos que se encuentren activos.
Gráfico 1
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
47
Definición de la tabla sep_historial_objetos
Esta tabla graba un registro de las ejecuciones realizadas al SEP, aquí se
grabara la información de los parámetros recibidos y los parámetros
devueltos así como si la ejecución fue exitosa o no.
Gráfico 2
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
48
Definición de la tabla sep_objetos_bd
En esta tabla se encuentra el nombre de los procedimientos que va a
ejecutar el servicio web.
Gráfico 3
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Definición de la tabla sep_parametros_objetos_bd
En esta tabla tendremos las configuraciones de cada uno de los
parámetros de los procedimientos.
Gráfico 4
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
49
Definición de la tabla sep_roles
En esta tabla se graban los roles que tendrá el SEP.
Gráfico 5
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Definición de la tabla sep_servicio_roles
En esta tabla contiene los permisos que tendrá cada rol para la ejecución
del servicio.
Gráfico 6
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
50
Definición de la tabla sep_servicio_usuarios
En esta tabla contiene los permisos que tendrá directamente cada usuario
para la ejecución del servicio.
Gráfico 7
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Definición de la tabla sep_servicios
En esta tabla contiene los servicios que se encuentran configurados para
la ejecución del procedimiento de la base de datos.
Gráfico 8
Elaborado por: Adolfo Sotomayor Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
51
Definición de la tabla sep_tipos_datos
En esta tabla se encuentran las configuraciones de los tipos de datos de
cada uno de los parámetros de los procedimientos configurados.
Gráfico 9
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Definición de la tabla sep_usuarios
En esta tabla se encuentran los usuarios configurados para la ejecución
del servicio del SEP.
Gráfico 10
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
52
Configuración de Un nuevo Servicio
Existen dos formar de configurar los servicios en el SEP, de manera
manual y de manera automática, a continuación detallamos cada una de
ellas:
Configuración de Servicio Manual
Para realizar la configuración manualmente debemos seguir el siguiente
orden de inserción en las tablas:
procedimiento.sep_objetos_bd
procedimiento.sep_servicios
procedimiento.sep_parametros_objetos_bd
A continuación se adjunta un ejemplo de la inserción de datos en las tablas
del SEP (Servicio Ejecuta Procedimientos)
/* sep_objetos_bd */ INSERT [procedimiento].[sep_objetos_bd] ([id_objeto_bd], [nombre_objeto], [descripcion], [cantidad_parametros]) VALUES (10, N'sp_Consulta_Asistencias_Estudiantes', N'Consulta la asistencia de los estudiantes', N'12') /* sep_servicios */ INSERT [procedimiento].[sep_servicios] ([id_servicio], [nombre], [descripcion], [fecha_desde], [fecha_hasta], [estado], [autenticacion], [id_objeto_bd], [id_grupo_servicio]) VALUES (9, N'Consultar Asistencias de Estudiantes', N'Permite al profesor consultar la Asistencia de los Estudiantes', CAST(N'2015-09-15' AS Date), NULL, N'1', N'S', 10, 2) /* sep_parametros_objetos_bd */ INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion], [entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (50, N'pv_fechaInicio', N'Descripcion @pv_fechaInicio', N'E', 1, 2, 10) INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion], [entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (51, N'pv_fechaFin', N'Descripcion @pv_fechaFin', N'E', 2, 2, 10) INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion], [entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (52, N'pi_idProfesor', N'Descripcion @pi_idProfesor', N'E', 3, 1, 10) INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion],
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
53
[entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (53, N'pi_idMateria', N'Descripcion @pi_idMateria', N'E', 4, 1, 10) INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion], [entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (54, N'pi_idParalelo', N'Descripcion @pi_idParalelo', N'E', 5, 1, 10) INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion], [entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (55, N'pi_anio', N'Descripcion @pi_anio', N'E', 6, 1, 10) INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion], [entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (56, N'pi_ciclo', N'Descripcion @pi_ciclo', N'E', 7, 1, 10) INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion], [entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (57, N'px_Salida', N'Descripcion @px_Salida', N'S', 8, 5, 10) INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion], [entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (58, N'PI_ESTADO', N'Descripcion @PI_ESTADO', N'S', 9, 1, 10) INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion], [entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (59, N'PV_MENSAJE', N'Descripcion @PV_MENSAJE', N'S', 10, 2, 10) INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion], [entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (60, N'PV_CODTRANS', N'Descripcion @PV_CODTRANS', N'S', 11, 2, 10) INSERT [procedimiento].[sep_parametros_objetos_bd] ([id_parametro_objeto_bd], [nombre_parametro], [descripcion], [entrada_salida], [orden], [id_tipo_dato], [id_objeto_bd]) VALUES (61, N'PV_MENSAJE_TECNICO', N'Descripcion @PV_MENSAJE_TECNICO', N'S', 12, 2, 10)
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Configuración de Servicio Automático
Para configurar un nuevo servicio de manera automática es necesario
ejecutar el siguiente procedimiento almacenado:
crea_servicio_procedimiento_aut
A continuación se explica los parámetros de entrada para la ejecución del
procedimiento:
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
54
Parámetros de Entrada del Procedimiento
crea_servicio_procedimiento_aut
Nombre Descripción
@nombre_servicio Ingresar el nombre con el cual identificaremos
al servicio.
@descripcion_servicio Ingresar una descripción del Servicio a
configurar.
@nombre_objeto Se deberá ingresar el nombre del
procedimiento que se requiera configurar.
@descripcion_objeto Descripción del procedimiento almacenado.
..@id_grupo Id del grupo al que se va a pertenecer el
servicio.
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Parámetros de Salida del Procedimiento
crea_servicio_procedimiento_aut
Nombre Descripción
@id_servicio Id del Servicio con que se registró el servicio en la
tabla sep_servicios.
@id_objeto Id del objeto con que se registró el nombre del
procedimiento en la tabla sep_objetos_bd.
@codigo_salida Código de ejecución del procedimiento de
servicios.
@mensaje_salida Mensaje de ejecución del procedimiento.
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
55
Se adjunta ejemplo de ejecución del procedimiento almacenado.
USE [saug] GO DECLARE @return_value int, @id_servicio int, @id_objeto int, @codigo_salida int, @mensaje_salida varchar(max) EXEC @return_value = [dbo].[crea_servicio_procedimiento_aut] @nombre_servicio = N'Graba Horario Manual Profesor', @descripcion_servicio = N'Graba el horario Manuel profesor', @nombre_objeto = N'sp_Graba_Horario_Manual_Profesor', @descripcion_objeto = N'Permite Grabar el horario del profesor.', @id_grupo = 4, @id_servicio = @id_servicio OUTPUT, @id_objeto = @id_objeto OUTPUT, @codigo_salida = @codigo_salida OUTPUT, @mensaje_salida = @mensaje_salida OUTPUT SELECT @id_servicio as N'@id_servicio', @id_objeto as N'@id_objeto', @codigo_salida as N'@codigo_salida', @mensaje_salida as N'@mensaje_salida' SELECT 'Return Value' = @return_value GO
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Requisitos necesarios para activar el Servicio
Al terminar el registro del servicio se deberá dar el grant del procedimiento
que se configuro.
A continuación se detalla la sentencia a ejecutar:
grant execute on nombre_del_procedimiento to nombre_de_usuario;
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
56
Configuración de Un nuevo usuario con encriptación.
Existen dos métodos para la encriptación del password de los usuarios, se
detalla cada uno de ellos, aunque el que se usa es el 3DES.
Configuración password Encriptado con 3DES
Para Encriptar el password del usuario con el método 3DES se debe
ejecutar mediante consola la librería saug_1_0.jar.
La línea de ejecución en el CMD es la siguiente:
java -jar saug_1_0.jar "D" "ClaveEnClaro" "91BA835FD6CD6A1C" "D59B3CA154FC1BCE"
"D59B3CA154FC1BCE"
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
A continuación se detalla cada parámetro para la ejecución de la librería
por consola:
Primer Parámetro.- Indica el tipo de encriptación, deberá ir el valor
“D” que indica que es 3DES
Segundo Parámetro.- Deberá ir la clave que se requiere encriptar.
Tercer Parámetro.- Llave 1 de encriptación en hexadecimal, la
longitud es de 16 caracteres.
Cuarto Parámetro.- Llave 2 de encriptación en hexadecimal, la
longitud es de 16 caracteres.
Quinto Parámetro.- Llave 3 de encriptación en hexadecimal, la
longitud es de 16 caracteres.
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
57
Configuración password Encriptado con BLOWFISH
Para Encriptar el password del usuario con el método blowfish se debe
ejecutar mediante consola la librería saug_1_0.jar.
La línea de ejecución en el CMD es la siguiente:
java -jar saug_1_0.jar "B" "claveEnClaro" "1jherp9jnfrjqp" "1fgt7uj8"
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
A continuación se detalla cada parámetro para la ejecución de la librería
por consola:
Primer Parámetro.- Indica el tipo de encriptación, deberá ir el valor
“B” que indica que es blowfish.
Segundo Parámetro.- Deberá ir la clave que se requiere encriptar.
Tercer Parámetro.- Llave 1 de encriptación, la longitud máxima es
de 14 caracteres.
Cuarto Parámetro.- Llave 2 de encriptación, la longitud es de 8
caracteres.
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
58
Verificación que el Servicio se encuentre configurado y
activo.
Prueba del nuevo servicio haciendo uso del soapui
Cuando el servicio este configurado en las tablas del SEP, se deberá
realizar la prueba con la herramienta SOAPUI, a continuación se anexa un
ejemplo de la ejecución del servicio:
Gráfico 11
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Revisión de Bitácora por éxito y por error en tablas y en log
de archivo
Para la revisión de las bitácoras en las tablas del SEP se debe distinguir por los
siguientes qwerys:
Revisión por éxito
select * from saug.procedimiento.sep_historial_objetos where codigo_salida = 0
Revisión por error
select * from saug.procedimiento.sep_historial_objetos where codigo_salida != 0
Elaborado por: Adolfo Sotomayor
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
59
Para la revisión de las bitácoras en el archivo log del SEP, se deberá tomar en
cuenta los siguientes parámetros:
Ruta del Archivo: /opt/jboss-as-7.1.1.Final/standalone/log/SEP
Nombre del Archivo: sepJPA.log
Sección del manual de usuario del SEP
Pasos para realizar el consumo del SEP con REST/JSON
Abrir la aplicación soapui
Escoger la opción Rest
Gráfico 12
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Aparecerá la venta New Rest Project, en la caja de texto URI colocar la ruta del
servicio web
http://192.168.100.11:9080/consultasJPA/rest/servicioConsultas
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
60
Gráfico 13
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Luego se nos mostrará la ventana de request, aquí seleccionamos en la opción
Method: POST, en la opción Media Type especificamos: application/json.
Gráfico 14
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
61
En el área de texto especificamos el JSON que del servicio que deseamos enviar:
{ "datosServicio": {
"dataSource": "jdbc/saugProc",
"idServicio": "17",
"usuario": "MiUserPrueba",
"clave": "Abc123",
"parametrosObjeto": {
"parametros": {
"nombre_servicio": "prueba ",
"descripcion_servicio": "prueba ",
"pc_xml": {
"raiz": { "elemento": "valor" } } } } }}
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
El JSON consta de los siguientes elementos:
dataSource.- Es el jndi que identifica a la base de datos donde se ejecutara la
el procedimiento almacenado
idServicio.- Es el identificador del servicio que deseamos ejecutar
usuario.- Es el usuario del servicio.
clave.- Es la clave del usuario del servicio
parametrosObjeto.- Dentro de este elemento se especificara el un arreglo de
parámetros de entrada para el servicio que se desea ejecutar.
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
62
Una vez especificado el JSON de request, procederemos a presionar el botón
play, y el resultado la ejecución del servicio podremos observarlo en el área de
texto del response.
{"respuestaServicio": {
"codigoRespuesta": "0",
"mensajeRespuesta": "EXITO",
"estado": "F",
"resultadoObjeto": {
"codigo_salida": "0",
"mensaje_salida": "Exito",
"px_xml_salida": {"raiz": {"elemento": "valor"}}
},
"idHistorico": "278784"
}}
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
La respuesta JSON tendrá los siguientes elementos:
codigoRespuesta.- Es el código que indica si la respuesta fue exitosa o no.
mensajeRespuesta: Es el mensaje que indica ÉXITO si es que no se
presentó ningún inconveniente y caso contrario el detalle del error que se
ha generado.
Estado: Devolverá el valor F si es que no se generó algún inconveniente
caso contrario tendrá valor A.
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
63
resultadoObjeto: Contiene los parámetros de salida del procedimiento
almacenado que se ejecutó.
idHistorial: Retorna el id que representa a la transacción en la tabla
histórica.
Gráfico 15
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
64
Sección del manual de usuario del Componente de
Monitoreo
Logstash
Instalación de logstash en servidor centos 6.5
1. Subir el archivo logstash-1.5.4-1.noarch.rpm a través de ftp en un directorio
en el servidor con centos por ejemplo /home/documentos/logstash
2. Conectarse a través del putty y ubicarse en el directorio donde se encutra
el archivo logstash-1.5.4-1.noarch.rpm
3. Ejecutar el comando
4. sudo rpm -ivh logstash-forwarder-0.3.1-1.x86_64.rpm
Gráfico 16
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
65
5. Se creara la ruta: /etc/logstash. En donde debemos especificar la
configuración para lectura de archivo que deseamos que logstash ejecute
un ejemplo de nombre archivo es: conf.d
6. Iniciar el servicio de logstash a través del comando:
sudo service logstash start
7. Para verficiar que logstash este funcionando ejecutar el comando
sudo service logstash status
Gráfico 17
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
66
Instalación de logstash en Windows
1. Descomprimir el archivo logstash-1.5.4.zip en una ruta por ejemplo
C:\logstash\logstash-1.5.4
2. Para ejecutar logstash abrir una consola de línea de comandos cmd
3. Ir a la ruta donde se descomprimio los archivos por ejemplo:
C:\logstash\logstash-1.5.4\bin
4. Ejecutar el comando logstash.bat y enviar como parámetro el archivo de
configuración y especificación de la tablas que deseamos leer
logstash agent --config C:\libreria\conexionBaseProcedimiento.conf
Gráfico 18
Ejecución de logstash en Windows
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Archivos de configuración para logstash
Logstash necesita archivos de configuración para funcionar, los cuales debemos
crearlos en una ruta para mantener una organización como detallaremos a
continuación
1. Definir una ruta donde se guradaran los archivos
2. Crear el archivo de configuración para logstash por ejemplo
configuraciónProcedimiento.conf
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
67
3. Crear el archivo con la consulta que se ejecutará en la base por ejemplo
consultaProcedimiento.sql
4. Copiar el archivo jar con el driver de conexión de la base de datos por
ejemplo sqljbc4
Gráfico 19
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
68
Configuración Logstash para leer datos.
Para el ejecutar logstash debemos crear un archivo de configuración en donde
especificaremos tres opciones
Input.- Es de donde obtendremos la información ya sea de una tabla o de
un archivo
Filter.- Permite aplicar transformaciones a los datos que se obtienen del
input
Output.- Define donde se guardaran los datos que se sacaron del input
Configuración para cargar datos desde una tabla en logstash
Para obtener datos de una tabla el input debemos especificar la opción jdbc y los
siguientes parámetros
jdbc_connection_string.- Se debe especificar la url de conexión hacia la
base de datos que deseamos conectarnos
jdbc_user.- Usuario de base de datos
jdbc_password.- Clave del usuario
jdbc_driver_library.- Especificar la ruta donde se encuentra el jar que tiene
el driver de conexión jdbc para la base de datos que nos deseamos
conectar
jdbc_driver_class.- Detallar la Clase que es el driver de conexión
statement_filepath.- indicar la ruta donde del archivo que tiene la consulta
que se ejcutara en la base de datos
Schedule.- Indicar cada cuanto tiempo se debe ejecutar la consulta
En el filter especificamos la opción date y los siguientes parámetros:
Match.- permite especificar el campo fecha y sus formato en año mes dia,
hora minuto y segundo
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
69
En el output detallamos la opción elasticsearch con los siguientes parámetros:
Protocol.- Especificar el protocolo http
Index.- Indicar el índice de elasticsearch donde se guardara la información
document_type.- Especificar el tipo de documento donde se guarda la
informacion
document_id.- Especificar el campo del registro que servirá como id dentro
del documento
host.- permite detallar la ip donde se encuentra instalado elasticsearch
Adicionalmente como parte del output podemos definir la opción stdout que nos
mostrara la información que se está procesando y nos permitirá hacer
depuraciones.
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
70
input { jdbc { jdbc_connection_string => "jdbc:sqlserver://192.168.100.10:1433;DatabaseName=saug" jdbc_user => "consultasLogstash" jdbc_password =>"20stash15" jdbc_driver_library => "C:/libreria/sqljdbc4.jar" jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver" statement_filepath => "C:/libreria/consulta2.sql" schedule => "* * * * *" } } filter{ date{ match => [ "fecha_ingreso_historial" , "yyyy-MM-dd HH:mm:ss Z" ] } } output { stdout { codec => rubydebug } elasticsearch { protocol => http index => "consultas" document_type => "historial" document_id => "%{id_historial}" host => "192.168.100.17" } }
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
71
Configuración para cargar datos desde un archivo en logstash
Para obtener datos de una tabla el input debemos especificar la opción file y los
siguientes parámetros
path.- Se debe especificar la ruta del archivo que se dese leer
start_position.- detallar si se dese leer el archivo desde el principio
En el filter especificamos la grok con los siguientes parámetros:
patterns_dir.- ruta del archivo que tiene patrones
match.- Nombre del patrón que permitirá identificar las líneas del
archivo
Otra opción de filter que debemos especificar es date con los siguientes
parametros:
Match .- Permite especificar el campo del archivo que tiene la fecha
con la que deseamos registrar la información
Locale.- permite especificar el idioma con el que se leerá la fecha.
En el output detallamos la opción elasticsearch con los siguientes parámetros:
Protocol.- Especificar el protocolo http
Index.- Indicar el índice de elasticsearch donde se guardara la información
document_type.- Especificar el tipo de documento donde se guarda la
informacion
document_id.- Especificar el campo del registro que servirá como id dentro
del documento
host.- permite detallar la ip donde se encuentra instalado elasticsearch
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
72
Adicionalmente como parte del output podemos definir la opción stdout que nos
mostrara la información que se está procesando y nos permitirá hacer
depuraciones.
input{ file{ path => "/opt/jboss-as-7.1.1.Final/standalone/log/access_log." start_position => "beginning" } } filter { grok { patterns_dir => "/opt/jboss-as-7.1.1.Final/Documentos/patrones" match => [ "message", "%{NEWAPACHELOG}"] } date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] locale => "en" }} output{ stdout {codec=>rubydebug} elasticsearch { protocol => "http" host => "192.168.100.17:9200" index => "logapache" document_type => "access" }}
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Elasticsearch
Instalación de elasticsearch en Windows como servicio
1. Descomprimir el archivo elasticsearch-1.6.0.zip en un directorio
denominado:
C:\elasticsearch\elasticsearch-1.6.0
2. Una vez descomprimido ejecutaremos el archivo
3. C:\elasticsearch\elasticsearch-1.6.0>service install
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
73
4. Una vez terminada la ejeucion podremos ver a elasticsearch entre los
servicios del sistema
Gráfico 20
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Pasos para configura un nuevo índice en elasticsearch
Para administrar de elasticsearch desde el navegador Firefox instalaremos el
plugin denominado rest client
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
74
Gráfico 21
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Una vez instalado el plugin rest client es
1. Especificar el nombre del índice que deseamos crear
2. Escoger el método POST
3. Detallar el mapeo del índice que vamos a crear
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
75
Gráfico 22
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Kibana
Instalación de kibana como servicio en windows
Para instalar Kibana como servicio utilizaremos el programa denominado NSSM
(The Non Sucking Service Manager).
Descomprimir el archivo kibana-4.1.2-windows.zip en la c:\kibana\kibana-4.1.2-
windows\
El archivo ejecutable nssm.exe lo debemos copiar en la carpeta bin de Kibana
C:\kibana\kibana-4.1.2-windows\bin
Luego desde línea de comandos ejecutamos el archivo nssm.exe
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
76
Gráfico 23
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Nos aparecerá una pantalla en donde debemos especificar los campos
Path: Especificar l ruta donde se encuentra el ejecutable de kibana por ejemplo
c:\kibana\kibana-4.1.2-windows\bin\kibana.bat
Startup directory: especificar la ruta raíz donde se encuetra instalado kibana
c:\kibana\kibana-4.1.2-windows\bin\
Gráfico 24
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
77
En la pestaña de dependencias debemos especificar el servicio que se debe
ejecutar antes de iniciar Kibana, aquí escribiremos el nombre del servicio de
elasticsearch
Gráfico 25
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
En la pestaña I/O, especificaemos lo nombres de los archivos de bitácora para la
entrada, salida y error del servicio
Gráfico 26
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
78
El último paso que debemos realizar es es presionar el botón edit service y se
creará nuestro servicio
Pasos para configurar un nuevo índice en Kibana
Abrir un navegador y escribir la url en la barra de direcciones:
http://192.168.100.17:5601
1. En la pantalla principal escoger la opción setting
2. Luego especificar el índice que deseamos agregar
3. Por último presionar el botón créate
Gráfico 27
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
79
Para verificar si el índice se creó de manera correcta debemos buscarlo en el
menú de índices de la opción settings
Gráfico 28
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Pasos para Descubrir un índice
Acceder a la siguiente url través de un navegador
http://192.168.100.17:5601
Se abrirá la pantalla principal del programa kibana, en esta pantalla presionamos
la opción discover y luego escogemos el índice que deseamos revisar. En este
caso el índice logapache
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
80
Gráfico 29
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Luego de escoger el índice logapache aparecerá un gráfico de barras que nos
mostrara la cantidad de peticiones que se han realizado hacia el servidor jboss y
que se encuentran registradas en la bitácora denominada access_log
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
81
Gráfico 30
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
82
Pasos Para Crear una nueva visualización
Acceder a la siguiente URL través de un navegador
http://192.168.100.17:5601
En la pantalla presionar la opción visualizar y luego seleccionar el tipo de
visualización
Gráfico 31
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
83
Escoger el índice del cual se desea generar la visualización en la opción
Gráfico 32
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
En la opción de buckets presionar la el icono Split slices
Gráfico 33
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
84
Una vez presionado la opción Split Slices debemos especificar:
1. El tiempo que desde el cual se va a tomar información para generar el
gráfico
2. Escoger el tipo de agregación que se va a utilizar
3. Especificar el campo sobre el cual se desea generar el gráfico
Gráfico 34
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
85
Pasos para crear un nuevo dashboard
Acceder a la siguiente url a través de un navegador
http://192.168.100.17:5601
Luego de dar click en la opción Dashboard realizar lo siguiente:
1. Escoger la opción agregar la visualización
2. Seleccionar la visualización que deseamos agregar al nuevo tablero
3. Una vez seleccionada la visualización, aparece en el espacio de trabajo
del tablero
Gráfico 35
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
86
Pasos para guardar un DashBoard
Una vez creado el tablero si deseamos guardarlos debemos realizar los siguientes
pasos
1. Presionar el botón guardar
2. Especificar el nombre del nuevo tablero
3. Dar click en guardar
Gráfico 36
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
87
Pasos para ver un DashBoard
Ingresar a un navegador y escribir la siguiente ruta en la barra de direcciones:
http://192.168.100.17:5601
Dar click en la opción Dashboard
Gráfico 37
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Dar click en la opción cargar dashboard guardados y eescoger el tablero
que deseamos ver
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
88
Gráfico 38
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Una vez selecciona nos aparecera nuestro tablero con las visualizaciones que es
se encuentren configuradas
Gráfico 39
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
89
Entre las visualizaciones configuradas tenemos:
Gráficos de barras para obtener el top de direcciones ip clientes del
servicio.
Gráfico de línea sobre el tiempo mínimo de respuesta de peticiones
realizadas contra el servidor de aplicaciones jboss.
Gráfico de pastel sobre el recurso (URL) más solicitada del servidor de
aplicaciones jboss
Gráfico 40
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
90
Gráfico 41
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Gráfico 42
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
91
Si deseamos cambiar el rango de tiempo de dashboard, debemos presionar la
opción que tiene el icono de reloj en la parte superior derecha de la pantalla
de kibana.
Luego de presionar la opción de tiempo, podremos seleccionar un rango de tiempo
rápido, relativo o absoluto
Rápido.- Son tiempos predefinidos
Relativo.- Permite especificar un rango con una fecha desde hasta el
tiempo actual
Absoluto.- Permite especificar un rango con fecha desde y una fecha hasta
Gráfico 43
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Gráfico 44
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
92
Gráfico 45
Elaborado por: Héctor Ortega
Fuente: Datos del proyecto
Errores comunes
A continuación se presentan los errores comunes al trabajar con los servicios del
SEP.
No se dieron los permisos al usuario.
Se modificaron (agregaron o eliminarlos) los parámetros del servicio pero
no se actualizo la cantidad de parámetros en la tabla sep_objetos_bd.
No se encuentra configurado correctamente el dataSource.
Están enviando los parámetros incorrectos
.
Frequently Asked Questions
A continuación se detallan las preguntas que se presentan frecuentemente en la
comunicación con el SEP (Servicio Ejecuta Procedimientos).
¿Si se actualiza un procedimiento es necesario volver a configurar la
parametrización en el SEP?
Sí, es necesario volver a actualizar en la tabla de parámetros, los últimos
que se agregaron en el procedimiento. No olvidar también que en la tabla
objetos se debe actualizar el número de parámetros.
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
93
MANUAL TÉCNICO DEL SEP
Facultad de Matemáticas y Físicas
Carrera Ingeniería en Sistemas Computacionales
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
94
Tabla de Contenido
Tabla de Contenido ..................................................................................................... 94
Índice de Gráficos ........................................................................................................ 95
Índice de Cuadros ........................................................................................................ 96
Objetivo del SEP........................................................................................................... 97
Descripción del Componente ................................................................................... 97
Especificaciones Técnicas .................................................................................... 97
Diagrama de componentes.................................................................................... 97
Diagrama de Flujo .................................................................................................... 98
Descripciones de Estructuras .................................................................................. 99
Modelo Entidad Relación ....................................................................................... 99
Descripción de tablas ........................................................................................... 100
Descripción detallada de los campos .............................................................. 100
Procedimientos Almacenados............................................................................ 106
Diagrama de Clases ............................................................................................... 107
Diagrama de Secuencia ........................................................................................ 108
Diagrama Detallado de Red ................................................................................. 109
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
95
Índice de Gráficos
Gráfico 1 .......................................................................................................................... 97
Gráfico 2 .......................................................................................................................... 98
Gráfico 3 .......................................................................................................................... 99
Gráfico 4 ........................................................................................................................ 107
Gráfico 5 ........................................................................................................................ 108
Gráfico 6 ........................................................................................................................ 109
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
96
Índice de Cuadros
Cuadro 1 ........................................................................................................................ 100
Cuadro 2 ........................................................................................................................ 100
Cuadro 3 ........................................................................................................................ 101
Cuadro 4 ........................................................................................................................ 101
Cuadro 5 ........................................................................................................................ 102
Cuadro 6 ........................................................................................................................ 102
Cuadro 7 ........................................................................................................................ 103
Cuadro 8 ........................................................................................................................ 103
Cuadro 9 ........................................................................................................................ 103
Cuadro 10 ...................................................................................................................... 104
Cuadro 11 ...................................................................................................................... 104
Cuadro 12 ...................................................................................................................... 105
Cuadro 13 ...................................................................................................................... 106
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
97
Objetivo del SEP El componente tiene como finalidad brindar un servicio que permita
ejecutar los procesos de una base de datos. Estos procesos deben ser
configurados previamente antes de poder ser utilizados.
Descripción del Componente
Especificaciones Técnicas A continuación se detallan los requerimientos necesarios que requiere el
componente de Servicios de Ejecución de Procedimientos:
Java 7
Jboss AS 7.1
NetBeans 7.3
Diagrama de componentes Gráfico 1
Modelo SEP
Elaborado por: Xavier Mora
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
98
Diagrama de Flujo
Gráfico 2
INICIO
Request
Request
correcta
Obtener
Configuración de
BD
Configuración
Correcta
Generar script para
ejecutar proceso
Ejecuta Proceso
Proceso
Ejecutado
correctamente
Genera Response
con la respuesta
del proceso
Inserta ejecución
de Proceso
Inserta ejecución
en bitácora
Generar Response
de Error
FIN
NO
NO
NO
Obtener
Validaciones de
Usuarios
Usuario
correcto
NO
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
99
Descripciones de Estructuras Modelo Entidad Relación Gráfico 3
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
100
Descripción de tablas
Cuadro 1
TABLA DESCRIPCIÓN
SEP_GRUPOS_SERVICIOS Define el catálogo de grupos de servicios.
SEP_HISTORIAL_OBJETOS Bitácora de transacciones procesadas por el Web Service
SEP_OBJETOS_BD Nombre de objetos que ejecutará el servicio
SEP_PARAMETROS_OBJETOS_BD Parámetros de objetos configurados
SEP_ROLES Roles del servicio
SEP_SERVICIO_USUARIOS Servicios por usuario
SEP_SERVICIOS Servicios que ejecutará el web service
SEP_TIPOS_DATOS Tipos de Datos de los parámetros
SEP_USUARIO_ROLES Usuario por Roles
SEP_USUARIOS Usuarios del servicio
SEP_SERVICIO_ROLES Servicio por Roles
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Descripción detallada de los campos
Cuadro 2
SEP_GRUPOS_SERVICIOS
CAMPO TIPO
PK ID_GRUPO_SERVICIO INT
DESCRIPCIÓN VARCHAR
NOMBRE VARCHAR
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
101
Cuadro 3
SEP_HISTORIAL_OBJETOS
CAMPO TIPO
ID_HISTORIAL INT
ID_SERVICIO INT
ID_OBJETO INT
FECHA_INGRESO_HISTORIAL DATETIME2
FECHA_INICIO_OBJETO DATETIME2
FECHA_FIN_OBJETO DATETIME2
FECHA_INICIO DATETIME2
CODIGO_SALIDA_OBJETO INT
MENSAJE_SALIDA_OBJETO VARCHAR
CODIGO_SALIDA INT
MENSAJE_SALIDA VARCHAR
ESTADO VARCHAR
PARAMETROS_RECIBIDOS VARCHAR
RESPUESTA_RETORNADA VARCHAR
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Cuadro 4
SEP_OBJETOS_BD
CAMPO TIPO
PK ID_OBJETO_BD INT
NOMBRE_OBJETO VARCHAR
DESCRIPCION VARCHAR
CANTIDAD_PARAMETROS VARCHAR
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
102
Cuadro 5
SEP_PARAMETROS_OBJETOS_BD
CAMPO TIPO
PK ID_PARAMETRO_OBJETO_BD INT
NOMBRE_PARAMETRO VARCHAR
DESCRIPCION VARCHAR
ENTRADA_SALIDA VARCHAR
ORDEN INT
FK ID_TIPO_DATO INT
FK ID_OBJETO_BD INT
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Cuadro 6
SEP_SERVICIOS
CAMPO TIPO
PK ID_SERVICIO INT
NOMBRE VARCHAR2
DESCRIPCION VARCHAR2
FECHA_DESDE DATE
FECHA_HASTA DATE
ESTADO VARCHAR2
AUTENTIFICACION VARCHAR2
FK ID_OBJETO_BD INT
FK ID_GRUPO_SERVICIO INT
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
103
Cuadro 7
SEP_ROLES
CAMPO TIPO
PK ID_ROLES INT
NOMBRE VARCHAR
DESCRIPCION VARCHAR
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Cuadro 8
SEP_SERVICIOS_USUARIOS
CAMPO TIPO
PK/FK ID_USUARIO INT
PK/FK ID_SERVICIO INT
FECHA_DESDE DATETIME
FECHA_HASTA DATETIME
ESTADO VARCHAR2
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Cuadro 9
SEP_TIPOS_DATOS
CAMPO TIPO
PK ID_TIPO_DATO INT
NOMBRE VARCHAR2
LONGITUD INT
FORMATO VARCHAR2
TIPO VARCHAR2
ESCALA INT
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
104
Cuadro 10
SEP_USUARIOS_ROLES
CAMPO TIPO
PK/FK ID_ROLES INT
PK/FK ID_USUARIO INT
FECHA_DESDE DATETIME
FECHA_HASTA DATETIME
ESTADO VARCHAR2
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Cuadro 11
SEP_USUARIOS
CAMPO TIPO
PK ID_USUARIO INT
FK NOMBRE VARCHAR
CLAVE VARCHAR
DESCRIPCION VARCHAR
FECHA_DESDE DATETIME
FECHA_HASTA DATETIME
ESTADO VARCHAR
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
105
Cuadro 12
SEP_SERVICIO_ROLES
CAMPO TIPO
FK/PK ID_SERVICIO INT
FK/PK ID_ROLES INT
FECHA_DESDE VARCHAR
FECHA_HASTA VARCHAR
ESTADO DATETIME
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
106
Procedimientos Almacenados
Cuadro 13
CREA_SERVICIO_PROCEDIMIENTO_AUT
PARAMETROS TIPOS DESCRIPCION
NOMBRE_SERVICIO
VARCHAR(50) Nombre del nuevo servicio.
DESCRIPCION_SERVICIO
VARCHAR(2000)
Breve descripción del servicio.
NOMBRE_OBJETO
VARCHAR(500)
Nombre del procedimiento almacenado
DESCRIPCION_OBJETO
VARCHAR(2000)
Breve descripción del procedimiento.
ID_GRUPO INT Grupo al que pertenece el servicio
ID_SERVICIO INT OUT Código del servicio generado.
ID_OBJETO INT OUT Código del objeto generado.
CODIGO_SALIDA INT OUT Código de ejecución del procedimiento.
MENSAJE_SALIDA VARCHAR(MAX) OUT
Mensaje de ejecución del procedimiento.
Elaborado por: Xavier Mora Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
107
Diagrama de Clases Gráfico 4
Elaborado por: Xavier Mora
Fuente: Datos del proyecto
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
108
Diagrama de Secuencia
Gráfico 5
Elaborado por: Xavier Mora Fuente: Datos del proyecto