UNIVERSIDAD DE GUAYAQUIL FACULTAD DE …repositorio.ug.edu.ec/bitstream/redug/11495/1/PTG-B-CISC 929...

200
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

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:

DIRECCIÓN URL (tesis en la web):

ADJUNTO PDF SI X

NO

CONTACTO CON AUTOR: Teléfono:

0988859847

E-mail:

[email protected]

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

Universidad de Guayaquil

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en Sistemas Computacionales

109

Diagrama Detallado de Red

Gráfico 6

Elaborado por: Xavier Mora Fuente: Datos del proyecto