Prototipo de Software para el Apoyo, Gestión y Seguimiento del Cruce en Felinos Domésticos
Texto completo
(2) 2 PROTOTIPO DE SOFTWARE PARA EL APOYO, GESTIÓN Y SEGUIMIENTO DEL CRUCE EN FELINOS DOMÉSTICOS. JOSÉ DANIEL CARRANZA LEGUIZAMO JOSÉ LEONARDO VANEGAS PRIETO. PROYECTO DE GRADO. Directora: ALBA CONSUELO NIETO LEMUS, MSc.. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍ A PROYECTO CURRICULAR DE INGENIERÍ A DE SISTEMAS BOGOTÁ D.C. 2017.
(3) 3 AGRADECIMIENTOS Inicialmente agradecemos a la Universidad Distrital Francisco José de Caldas por ofrecernos la oportunidad de formarnos profesionalmente en sus instalaciones, guiados por su excelente planta docente que sembró en nosotros conocimientos, valores, interés por el aprendizaje y pensamiento crítico social, cultural y académico. Agradecemos a nuestra directora de tesis, MSc. Alba Consuelo Nieto Lemus, por su interés, paciencia, orientación y conocimientos brindados durante nuestros estudios de pregrado y el desarrollo del presente proyecto. A nuestras familias, fuente de motivación y apoyo emocional, quienes nos han inculcado los valores que nos caracterizan, compartido e incentivado nuestra formación personal y profesional. De la misma manera a nuestras parejas Adriana y Yaneth por su paciencia, comprensión, soporte y acompañamiento. Un agradecimiento especial para los médicos veterinarios que proporcionaron sus conocimientos los cuales constituyeron la base del desarrollo del proyecto, en especial a la doctora, MV. MSc. Adriana Patricia López Romero. Al señor decano Ph.D Roberto Ferro Escobar, cuyo apoyo e interés constituyeron un factor clave para que este proyecto pudiera ser presentado en su totalidad. A nuestro jurado, MSc, Ph.D Edgar Jacinto Rincón Rojas, quien con sus valiosos aportes hicieron este proyecto posible. A las ingenieras Nancy Yaneth Gélves García y Susana Méndez Salas, directora y asistente de programa de ingeniería de sistemas, por su apoyo mediante el ejercicio de sus labores académicas y administrativas. Para todos ellos nuestros más sinceros agradecimientos..
(4) 4. Contenido 1.. DESCRIPCIÓN DEL PROYECTO ................................................................. 13 1.1 Introducción ................................................................................................. 13 1.2. Planteamiento del problema ....................................................................... 15 1.2.1 Análisis del problema ............................................................................ 15 1.2.2 Delimitación del problema ..................................................................... 15 1.3 Formulación de la pregunta central de trabajo ............................................. 17 1.4 Objetivos ...................................................................................................... 17 1.4.1 Objetivo General ................................................................................... 17 1.4.2 Objetivos específicos ............................................................................ 17 1.5 Justificación ................................................................................................. 19 1.6. Delimitación ................................................................................................ 20 1.6.1 Alcance ................................................................................................. 20 1.6.2 Limitaciones .......................................................................................... 20. 2. MARCO REFERENCIAL ................................................................................... 21 2.1. Marco teórico .............................................................................................. 21 2.1.1 Consideraciones genéticas ................................................................... 21 2.1.2 Variables de relación entre individuos ................................................... 22 2.2 Marco referencial ......................................................................................... 25 2.2.1 Aspectos de la crianza de felinos domésticos ....................................... 25 2.2.2 Software para criaderos ........................................................................ 26 2.3 Marco tecnológico ........................................................................................ 28 2.3.1 Arquitectura de múltiples capas ............................................................ 28 2.3.2 Bases de datos NoSQL ......................................................................... 31 2.3.3 Protocolo Two Phase Commit ............................................................... 35 2.3.4 APIs de persistencia.............................................................................. 36 2.4 Marco metodológico .................................................................................... 38 2.4.1 Metodología ágil Scrum......................................................................... 38 3. DESARROLLO DEL PROYECTO. .................................................................... 40 3.1 Metodología de desarrollo - Scrum .............................................................. 40 3.1.1 Conformación del equipo ...................................................................... 40 3.1.2 Plan del proyecto................................................................................... 40 3.2 Desarrollo del Sprint 1. ................................................................................ 44.
(5) 5 3.2.1 Definición de las historias de usuario .................................................... 44 3.2.2 Definición de la arquitectura .................................................................. 55 3.2.3 Especificación de la estructura de la persistencia. ................................ 57 3.2.4 Modelado de la estructura de objetos del prototipo. .............................. 60 3.2.5 Diseño del mapa de navegación y bocetos funcionales ........................ 61 3.2.6 Reuniones del equipo y retrospección del Sprint .................................. 61 3.3 Desarrollo del Sprint 2 ................................................................................. 62 3.3.1 Preparación del entorno de desarrollo. ................................................. 62 3.3.2 Implementación del sistema de autenticación de usuarios. .................. 64 3.3.3 Creación del módulo de gestión de ejemplares .................................... 64 3.3.4 Desarrollo de la funcionalidad de registro, seguimiento de ejemplares y pedigrí. ........................................................................................................... 66 3.3.5 Reuniones por Sprint y retrospección ................................................... 66 3.4 Desarrollo del Sprint 3 ................................................................................. 67 3.4.1 Creación del módulo de seguimiento de consultas médicas ................. 67 3.4.2 Reuniones del Sprint y retrospección .................................................... 67 3.5 Desarrollo del Sprint 4 ................................................................................. 68 3.5.1 Gestión de dietas como tratamiento. ..................................................... 69 3.5.2 Reuniones del Sprint y retrospección. ................................................... 69 3.6 Desarrollo del Sprint 5 ................................................................................. 70 3.6.1 Cálculo de COI y COR .......................................................................... 71 3.6.2 Búsqueda de consultas relevantes........................................................ 72 3.6.3 Búsqueda de camadas.......................................................................... 72 3.6.4 Comparación de ejemplares para el cruce ............................................ 72 3.6.5 Registro de camadas ............................................................................ 72 3.6.6 Reuniones del Sprint y retrospección. ................................................... 73 3.7 Pruebas de la aplicación .............................................................................. 74 3.8 Resultados obtenidos a través del proceso de desarrollo............................ 75 4. CONCLUSIONES .............................................................................................. 77 5. TRABAJO FUTUROS ....................................................................................... 79 5. ANEXOS ........................................................................................................... 80 5.1 Anexo 1: Modelo de clases aplicación. ........................................................ 80 5.2 Anexo 2: Diagrama de secuencia de la implementación del Protocolo 2PC. ........................................................................................................................... 87 5.3 Anexo 3: Bocetos de interfaz gráfica. .......................................................... 88.
(6) 6 5.4 Anexo 4: Pruebas funcionales de la aplicación. ......................................... 101 5.4.1 Autenticación de usuarios ................................................................... 101 5.4.2 Creación de ejemplares ...................................................................... 104 5.4.3 Búsqueda y consulta de ejemplares.................................................... 109 5.4.4 Consultas médicas de los ejemplares. ................................................ 111 5.4.5 Seguimiento nutricional ....................................................................... 119 5.4.6 Módulo de cruces ................................................................................ 121 5.4.7 Creación de camada ........................................................................... 123 Lista de referencias ............................................................................................. 126.
(7) 7 Lista de ilustraciones. Figura 1 Cuadro de Punnett de transmisión de alelos de la progenie. .................. 21 Figura 2 Distribución independiente de plantas con dos características diferentes. ....................................................................................................................... 22 Figura 3 Configuración típica de una arquitectura de 3 capas .............................. 30 Figura 4 Ejemplo de arquitectura de 5 capas ........................................................ 30 Figura 5 Grafo con propiedades y etiquetas.......................................................... 32 Figura 6 Mensajes intercambiados entre el coordinador y los participantes en el protocolo Two Phase Commit. ....................................................................... 35 Figura 7 Sandbox de IceScrum con las historias de usuario. ................................ 41 Figura 8 Captura de pantalla de IceScrum con los Sprints del proyecto. .............. 42 Figura 9 Diagrama de contexto. ............................................................................ 55 Figura 10 Arquitectura de la aplicación. ................................................................ 56 Figura 11 Diagrama del modelo Entidad Relación ................................................ 58 Figura 12 Modelo relacional. ................................................................................. 59 Figura 13 modelo de grafo etiquetado. .................................................................. 60 Figura 14 Mapa de navegación de las funcionalidades hasta el Sprint 2 .............. 66 Figura 15 Mapa de navegación de las funcionalidades implementadas hasta el Sprint 3 ........................................................................................................... 68 Figura 16 Mapa de navegación de las funcionalidades implementadas hasta el Sprint 4 ........................................................................................................... 70 Figura 17 Consulta para el cálculo del COI ........................................................... 71 Figura 18 Mapa de navegación con las funcionalidades implementadas hasta el Sprint 5. .......................................................................................................... 73 Figura 19 Diagrama de clases de gestión de usuarios y sesión............................ 80 Figura 20 Diagrama de clases de la gestión de ejemplares. ................................. 81 Figura 21 Diagrama de clases de la gestión de consultas médicas. ..................... 82 Figura 22 Diagrama de clases de hallazgos y constantes fisiológicas. ................. 83 Figura 23 Diagrama de clases de diagnóstico y actividades (cirugías, exámenes y acciones correctivas)...................................................................................... 84 Figura 24 Diagnósticos y actividades (medicaciones, dietas, vacunas, desparasitaciones) ......................................................................................... 85 Figura 25 Diagrama de clases de la funcionalidad de resumen de cruces y camadas ....................................................................................................................... 86 Figura 26 Diagrama de secuencia del protocolo Two Phase Commit ................... 87 Figura 27 Boceto de búsqueda de ejemplares. ..................................................... 88 Figura 28 Boceto de detalle del ejemplar y del árbol genealógico. ....................... 89 Figura 29 Boceto de detalle del ejemplar con información médica. ...................... 90 Figura 30 Boceto del detalle del ejemplar e información nutricional...................... 91 Figura 31 Boceto del detalle del ejemplar y la información de las camadas. ........ 92 Figura 32 Boceto del formulario de consulta médica. ............................................ 93 Figura 33 Boceto de formulario de registro de hallazgos y constantes fisiológicas. ....................................................................................................................... 94 Figura 34 Boceto del formulario de diagnósticos y detalles finales de la consulta. 95.
(8) 8 Figura 35 Bocetos de ventanas emergentes de actividades, cirugía, vacuna y desparasitación. ............................................................................................. 96 Figura 36 Bocetos de ventanas emergentes de registro de actividades de acción correctiva, medicación y dieta. ....................................................................... 97 Figura 37 Boceto del resumen del cruce y camadas de la hembra. ...................... 98 Figura 38 Boceto del resumen de cruce y las consultas relevantes del macho. ... 99 Figura 39 Boceto del formulario de detalle de una camada. ............................... 100 Figura 40 Página de inicio de la aplicación ......................................................... 101 Figura 41 Módulo de búsqueda de ejemplares. .................................................. 101 Figura 42 Formulario de registro de nuevo usuario. ............................................ 102 Figura 43 Registro de un nuevo usuario. ............................................................ 102 Figura 44 Registro exitoso del usuario. ............................................................... 103 Figura 45 Cierre de sesión de usuario. ............................................................... 103 Figura 46. Sesión iniciada con el usuario registrado. .......................................... 103 Figura 47 Plantilla de búsqueda de ejemplares................................................... 104 Figura 48 Botón para crear ejemplar en la plantilla de búsqueda de ejemplares 105 Figura 49 Formulario de creación de ejemplar. ................................................... 105 Figura 50 Selección del fenotipo. ........................................................................ 105 Figura 51 Botón de búsqueda de la madre. ........................................................ 106 Figura 52 Formulario de búsqueda de la madre.................................................. 106 Figura 53 Madre y padres seleccionados. ........................................................... 107 Figura 54 Área disponible para la foto del ejemplar. ........................................... 107 Figura 55 Selección de la foto del ejemplar. ....................................................... 107 Figura 56 Foto cargada en la aplicación. ............................................................ 108 Figura 57 Carga del carnet de vacunación. ......................................................... 108 Figura 58 Formulario totalmente diligenciado para la creación del ejemplar. ...... 109 Figura 59 Confirmación del éxito de la creación del ejemplar. ............................ 109 Figura 60 Búsqueda de un ejemplar. .................................................................. 110 Figura 61 Consulta del detalle de un ejemplar. ................................................... 110 Figura 62 Árbol genealógico del ejemplar. .......................................................... 111 Figura 63 Módulo de información médica. .......................................................... 111 Figura 64 Registro de constantes fisiológicas. .................................................... 112 Figura 65 Registros de hallazgos. ....................................................................... 112 Figura 66 Diagnósticos de una consulta. ............................................................ 113 Figura 67 Función para agregar diagnóstico. ...................................................... 113 Figura 68 Formulario de creación de diagnóstico presuntivo. ............................. 113 Figura 69 Selección del diagnóstico creado. ....................................................... 114 Figura 70 Pantalla de creación de actividades. ................................................... 114 Figura 71 Creación de una desparasitación. ....................................................... 114 Figura 72 Creación de cirugía. ............................................................................ 115 Figura 73 Creación de una vacuna. .................................................................... 115 Figura 74 Listado de exámenes. ......................................................................... 116 Figura 75 Creación de una medicación. .............................................................. 116 Figura 76 Creación de una acción correctiva. ..................................................... 117 Figura 77 Área de anexos. .................................................................................. 117 Figura 78 Selección de un anexo. ....................................................................... 117 Figura 79 Selección de archivo a adjuntar como anexo. ..................................... 118.
(9) 9 Figura 80 Descarga de un documento adjunto.................................................... 118 Figura 81 Consulta médica totalmente diligenciada. ........................................... 119 Figura 82 Lista de consultas médicas asociadas al ejemplar. ............................. 119 Figura 83 Creación de una dieta. ........................................................................ 120 Figura 84 Selección del alimento a usar en la dieta. ........................................... 120 Figura 85 Información nutricional del ejemplar. ................................................... 121 Figura 86 Pantalla inicial del área de cruces ....................................................... 122 Figura 87 Búsqueda de la hembra. ..................................................................... 122 Figura 88 Búsqueda del macho........................................................................... 122 Figura 89 Resumen de información de ejemplares para el cruce. ...................... 123 Figura 90 Consultas médicas relevantes en el macho ........................................ 123 Figura 91 Consultas médicas relevantes para la hembra. .................................. 123 Figura 92 Formulario de registro de camada....................................................... 124 Figura 93 Camada creada exitosamente. ........................................................... 124 Figura 94 Camadas de un ejemplar. ................................................................... 124 Figura 95 Botón para ver la camada del ejemplar. .............................................. 125 Ilustración 96 Camadas en común entre dos ejemplares. ................................... 125.
(10) 10 Lista de tablas. Tabla 1 Integrantes del equipo de desarrollo. ....................................................... 40 Tabla 2 Lista de Sprints con sus respectivas historias técnicas y de usuario. ...... 43 Tabla 3 Herramientas y dependencias usadas en el desarrollo ............................ 63.
(11) 11 Glosario A Alelo: Es cada una de las distintas modalidades que puede presentar un gen que informa para un carácter. Cada alelo se simboliza mediante una letra. C Coeficiente de inbreeding (COI): Cantidad de inbreeding para un animal en particular, lo que indica la probabilidad de que un par de genes específicos hayan sido heredados de un antepasado común. Cuadro de Punnett: Ilustra la segregación independiente de los alelos según las leyes de Mendel, se emplea para calcular las proporciones de los diferentes genotipos. Crossbreeding: Apareamiento de ejemplares de raza pura provenientes de diferentes camadas con el fin de replicar las propiedades de los progenitores mezclando sus rasgos. E Epistasia: Cuando un gen solapa o inhibe la manifestación de otro gen que no es alelo. Se denomina epistático al gen que se manifiesta e hipostático al gen no alélico que se inhibe o se reprime. F Fenotipo: Las distintas características que se observan en un individuo y que son producto de la expresión del genotipo. Por ejemplo: Ojos azules, pelo negro. Flexibilidad: El esfuerzo necesario para modificar un programa que ya está en funcionamiento. G Genotipo: Conjunto de alelos que posee un organismo individual y expresa un fenotipo. Gestación: Periodo durante el cual una hembra lleva y sustenta una cría embrionaria o fetal dentro de su vientre hasta el nacimiento. H Homocigosis: Cuando los alelos de un gen responsable de un carácter determinado en un ejemplar son idénticos..
(12) 12 I Inbreeding: Apareamiento entre animales que tienen uno o más antepasados en común. Cuanto más cercano sea el parentesco, mayor será la consanguinidad en la progenie resultante. M Mantenibilidad: Modificaciones que son hechas después del lanzamiento del producto con el fin de hacer una mejora. Mutación: Alteración al azar en la secuencia del ADN la cual introduce nuevas variantes. L Linebreeding: Apareamiento entre parientes cercanos, con el propósito de concentrar las características deseables de las crías. Esta técnica se utiliza a veces en reproductores destacados, para tratar de fijar o concentrar sus genes en la progenie. Locus: Es una posición fija sobre un cromosoma donde se localiza un gen u otra secuencia de ADN. O Outbreeding: Apareamiento de ejemplares que no presentan relación de consanguinidad, por lo tanto, no presentan parientes en común. P Pedigrí: Genealogía de un animal; si se refiere al documento, es en el cual se registra la genealogía o árbol genealógico de un ejemplar, donde consta la pureza de la raza y de sus ancestros. Penetrancia: Porcentaje de individuos de un genotipo determinado que muestra realmente el fenotipo asociado a dicho genotipo. Población eficaz: Relación entre número de machos y hembras en un sistema de crianza para que demuestre que tan ideal es una población, en cuanto a la dispersión de alelos mediante cruces. T Translocación: Ocurre cuando parte de un cromosoma se transfiere a otro cromosoma.
(13) 13 1.. DESCRIPCIÓN DEL PROYECTO. 1.1 Introducción La domesticación de los gatos (Felis silvestris catus) está relacionada con la civilización egipcia y se presume que pudo darse cerca de los años 3000 A.C., aunque las evidencias más claras datan del año 1900 A.C. Independientemente de cuál haya sido la fecha, alrededor del año 1600 A.C ya se encontraban domesticados y eran considerados animales sagrados por esta cultura (Robinson, 2013). A través de los años esta especie se ha constituido como un animal de compañía que proporciona ayuda en el control de plagas como roedores, también se ha reportado la interacción con esta especie en tratamientos terapéuticos como en enfermedades de déficit cognitivo (Fine, 2011). En el siglo XV se realizó la primera exposición de felinos domésticos, pero no fue hasta el año 1868 en el Palacio de Cristal en Londres donde el interés por esta especie hizo su aparición a gran escala, ya que durante este siglo y a partir de esta fecha, se hizo evidente el interés de los criadores y de los cuidadores de mascotas por la creación de modelos de crianza, lo que posibilita contar con ejemplares de características especiales y así hacerse acreedores de premios y reconocimientos en los diferentes certámenes de juzgamiento por razas y grupos. En 1903 con la publicación del libro “Book of the cat” por Frances Simpson se comenzó a hablar de una manera más formal de sistemas de crianza, aunque aún no se tenían en cuenta nociones genéticas para su reproducción (Hartwell, 2003-2015). Con el avance de la genética, el conocimiento de la fisiología del gato y evolución de los sistemas de crianza, se han estandarizado ciertas razas e incluso creado nuevas a partir de cruces realizados de manera sistemática. Esto se ha logrado utilizando técnicas de cruce de inbreeding, linebreeding y crossbreeding, en las que se tienen en cuenta los niveles de consanguinidad de los ejemplares para su cruce y por lo tanto la información de su genealogía presente en el documento de pedigrí (Hartwell, 2005). Para un buen proceso de crianza es fundamental contar con la mayor información posible de los ejemplares a cruzar: pedigrí, información médica (vacunas, medicamentos suministrados, tratamientos, condiciones reproductivas, entre otras), información nutricional, de temperamento, y si se es posible el resultado de camadas que hayan presentado con anterioridad (McMinn, 2009). Del correcto uso de esta información depende la vida de los animales inmersos en el proceso de crianza, llegando en muchos casos a producir un sin número de resultados no deseados como fenotipos no esperados, malformaciones, enfermedades y muertes. En un modelo de crianza al incrementarse el número de ejemplares, cruces y camadas, aumenta significativamente la complejidad de la información, generando desorden y pérdida de datos. Existen diferentes productos de software en mercado, la mayor parte con licencias privativas, que permiten realizar diversas tareas en cuanto al manejo de las reglas de negocio de un criadero como el registro,.
(14) 14 seguimiento de sus ejemplares y predicciones de cruces, las cuales se limitan a entregar la información de coeficiente de inbreeding (COI), de relación (COR), pedigrí asociado al cruce y en algunos casos los posibles fenotipos resultantes (Zooeasy, 2017; Breedmate, 2012; Tenset, 2014). Esta información resulta incompleta al momento de tomar una decisión sobre si realizar un cruce o no, ya que no se deben pasar por alto aspectos médicos e históricos del comportamiento de los ejemplares a cruzar, pues dicho conocimiento proporciona al criador una herramienta que asista el proceso para la toma de decisiones, y una proyección aproximada de las posibles condiciones de las crías resultantes del cruce (McMinn, 2009). Desde el ámbito académico se propone desarrollar un prototipo de software que implemente los servicios de seguimiento de genealogía de los ejemplares de un criadero de felinos domésticos, sus características individuales, dieta, historial médico y reproductivo, que constituya una herramienta que permita estimar los posibles resultados de un cruce teniendo en cuenta la información más relevante, con el fin de evitar cruzas cuyas crías presentan alteraciones fisiológicas debido al grado de consanguinidad o a patologías congénitas..
(15) 15 1.2. Planteamiento del problema 1.2.1 Análisis del problema Durante el proceso de crianza es común que se presenten alteraciones en la fisiología del animal debido al grado de consanguinidad, patologías congénitas, mutaciones y factores externos, entre otros (McMinn, 2009). Debido a esto se pretende buscar la manera de minimizar su manifestación, criando ejemplares con un riesgo menor de padecer dichas patologías y con características acordes a su raza reduciendo así la mortalidad. El correcto registro y seguimiento de la información de cada ejemplar, es una herramienta de apoyo fundamental para el control médico y la posterior toma de decisiones para la cruza (Gough y Thomas, 2004; Niels, 1991). Este registro deberá contar con el historial clínico, reproductivo y nutricional del espécimen, así como con su caracterización fenotípica y de temperamento. Por medio de la lectura de la información anteriormente registrada, el criador podrá estimar de manera teórica el resultado de la cruza y la camada resultante, disminuyendo la posibilidad de obtener crías con características no deseadas. Para desarrollar el presente proyecto se utilizaron como datos de entrada la información contenida en el certificado de pedigrí, la información genealógica perteneciente a cada ejemplar, historial clínico, nutricional, reproductivo y de temperamento. La mayoría de criadores al no contar con la herramienta apropiada no llevan un seguimiento adecuado de esta información motivo por el cual se hizo uso de datos de prueba generados a partir de la experiencia y supervisión de un médico veterinario asesor. 1.2.2 Delimitación del problema En el estudio realizado para identificar los módulos y funcionalidades que se necesitan en el prototipo a desarrollar, se han reconocido como principales tareas: el registro del ejemplar con su caracterización, el seguimiento al pedigrí, el historial clínico, la dieta e información nutricional, el cálculo de los coeficientes de inbreeding (COI) y relación (COR). A continuación, se describen las funcionalidades con base en lo reportado en la literatura (McMinn, 2009; Niels 1991) y en entrevistas con médicos veterinarios y criadores (A. López, comunicación personal, 11 de noviembre de 2015; J. Riveros, comunicación personal, 15 de noviembre de 2015). . Registro de datos básicos de los ejemplares: Esta funcionalidad requiere del registro de datos de los ejemplares como: identificación, fenotipo y genealogía. Estos están presentes en el documento de pedigrí y constituyen la base para la obtención del coeficiente de inbreeding (COI), de relación (COR), la observación y el seguimiento de las características y condiciones encontradas en su línea genética..
(16) 16. Adicionalmente, es necesario contar con el registro de la información de las camadas y la respectiva asociación entre los ejemplares; de igual manera se requiere el registro de natalidad, mortalidad y otras observaciones relevantes del parto. . Módulo de consultas clínicas: Este módulo es de relevancia primordial ya que contiene una recopilación de condiciones médicas, novedades, tratamiento y medicamentos suministrados al ejemplar. Los datos más relevantes de la historia clínica deben ser mostrados para la contextualización y análisis por parte del criador, de esta forma servirá como una herramienta para la toma de decisiones en relación al cruce y evaluar las posibles condiciones resultantes. El historial de vacunación permite conocer el estado inmunológico de los ejemplares; esta información es relevante ya que tanto el macho como la hembra a cruzar deberán tener las mismas vacunas para evitar la posible transmisión de enfermedades en las crías y asegurar el paso de anticuerpos maternos. Es necesario contar con un módulo enfocado a la información reproductiva en particular de la hembra, conocer su periodo de gestación y en lo posible establecer los niveles de progesterona, además debe tener vínculo con información relativa al parto y de los animales resultantes del cruce, para inferir las condiciones reproductivas de las de las madres. Otro aspecto importante ligado al historial clínico es la capacidad de determinar patrones o anomalías médicas en caso presentarse tasas de mortalidad sin explicación aparente, por lo cual es relevante la inclusión de la información arrojada por las necropsias en caso de presentarse animales nonatos o la muerte de una ejemplar.. . Módulo nutricional: Para el adecuado bienestar de los ejemplares inmersos en el proceso de crianza es necesario llevar un seguimiento y control nutricional, ya que se ha encontrado que la presencia o ausencia de ciertos nutrientes en la dieta de una hembra gestante podrá generar condiciones no deseadas como la reabsorción fetal, abortos y otras patologías neonatales (malformaciones, desnutrición, deficiencias inmunológicas, entre otras). En general es fundamental una alimentación adecuada para el correcto desarrollo del feto y el fortalecimiento del sistema inmunológico, así como para mantener la salud de la hembra gestante. El seguimiento de la nutrición del animal debe estar acompañado del registro de comportamiento del peso, enfatizando en las primeras semanas de la cría, ya que se asocia un considerable nivel de mortalidad en las crías con bajo peso, lo cual en ocasiones está relacionado con deficiencias en la alimentación y condiciones médicas no tratadas..
(17) 17 . Resumen de características de la pareja a cruzar: reúne la información más relevante enfocada al aspecto reproductivo de los dos ejemplares. Adicionalmente a ello, cálculos de coeficiente de inbreeding (COI), de relación (COR), historial de camadas previas de los ejemplares, consultas médicas más relevantes y tratamientos activos. Los datos más relevantes que se encontraron para mostrar en el resumen son: Condiciones médicas latentes en el ejemplar. Fenotipo (color de ojos, patrón y color de pelaje). Vacunas administradas. Información de tratamientos. Camadas previas con sus observaciones particulares (natalidad, mortalidad, parto asistido, cesárea o parto natural).. 1.3 Formulación de la pregunta central de trabajo ¿Cómo desarrollar un prototipo de software web soportado en una base de datos NoSQL para el apoyo, gestión y seguimiento del cruce de ejemplares de felinos domésticos, considerando grado de consanguinidad, historial clínico y de antecedentes de cruces previos, de manera que ayude a reducir el número de malformaciones y transmisión de enfermedades entre los miembros de la especie? 1.4 Objetivos 1.4.1 Objetivo General Desarrollar un prototipo de software web, para el seguimiento y control de cruces de felinos domésticos, que constituya una base para la toma de decisiones en este proceso, teniendo en cuenta el pedigrí, historial clínico, nutricional y reproductivo de los ejemplares. 1.4.2 Objetivos específicos . . . Especificar los requerimientos funcionales y no funcionales para la gestión de la información de cruces de felinos domésticos, a partir de entrevistas con veterinarios que participan en el proyecto y de la revisión de la literatura. Elaborar el modelo de arquitectura de la aplicación de manera que permita el desarrollo incremental de las funcionalidades requeridas: seguimiento de historial clínico, nutricional, condiciones médicas y reproductivas de los ejemplares. Definir el esquema de datos no relacional para modelar los atributos y las relaciones genealógicas entre los miembros de la especie y relacional para los demás datos asociados con la historia clínica, nutricional y reproductiva..
(18) 18 . Implementar los módulos funcionales que hacen parte de la aplicación web para soportar los requerimientos definidos. Poblar la base de datos con información de prueba para validar las funcionalidades del prototipo. Validar el prototipo en colaboración de criadores y médicos veterinarios para comprobar la utilidad de la herramienta como apoyo al proceso de cruce; hacer los ajustes requeridos..
(19) 19 1.5 Justificación En los criaderos los cruces son realizados por criadores con nociones básicas y a veces intuitivas sobre esta práctica, no por genetistas, es por ello que usualmente se cometen errores al momento de realizarlos. Estos errores suelen hacerse visibles en estadios avanzados de la crianza (años) con la consecuente pérdida de líneas genéticas completas y un número considerable de ejemplares ven comprometida su salud y vida debido a estos errores. En cifras del mes de enero de 2017 en Colombia existen alrededor de 80 criaderos de felinos domésticos, 52 de ellos se encuentran registrados ante organizaciones internacionales que agremian la práctica de la crianza (TICA, 2017; ACFEC, 2017), dichos criaderos cuentan con ejemplares de en promedio 3 razas diferentes, siendo la más común de ellas la raza Persa, con presencia en 26 de los criaderos registrados. Es posible encontrar mediante buscadores en Internet una gran cantidad de resultados relacionados con cientos de ejemplares de raza que son ofrecidos a través de la red, lo que demuestra el alto grado de informalidad que puede conllevar esta práctica, a la que se asocian por lo menos 1554 felinos de los criaderos registrados, aproximar una cifra de los ejemplares usados por practicantes informales es difícil de calcular. El personal inmerso en esta práctica, por criadero, es en promedio de 3 a 4 personas, involucrando en total a más de 800 personas entre criadores formales e informales. En el año 2012 fueron comercializados alrededor de 12.300 animales provenientes de la práctica informal (Animanaturalis, 2014), de ellos una gran proporción corresponde a felinos domésticos, los cuales llegan a presentar condiciones de salud que ponen en riesgo sus vidas (Maldonado, 2012; Escalante, 2015). El presente trabajo propone el desarrollo de un prototipo para la gestión de información que apoye el proceso de cruza de felinos domésticos, que proporcione al criador información relevante de los ejemplares, como son el coeficiente de inbreeding (COI), coeficiente de relación (COR), el pedigrí de ambos animales, su historial clínico, vacunaciones, periodo gestacional de la hembra, resultados de cruces previos y un valor sobre la efectividad de la población relativo a las razas inmersas en el proceso y uno en general. Se espera que con la ayuda de esta herramienta el criador cuente con información relevante para la toma de decisiones con respecto a los cruces, de manera que se realicen sin poner en riesgo la salud de los ejemplares centrando la atención en el aspecto clínico y no en métricas que busquen que el ejemplar cumpla con las características de una raza en particular..
(20) 20 1.6. Delimitación 1.6.1 Alcance Este proyecto se enfoca al desarrollo de un prototipo de software de gestión de información clínica y reproductiva, para el cruce de felinos domésticos, basándose en una arquitectura de múltiples capas y sobre sistemas de bases de datos relacional y otro NoSQL, utilizando la metodología de desarrollo ágil Scrum. La aplicación está en la capacidad de almacenar la caracterización, pedigrí, historial clínico, reproductivo, nutricional y de resultados de las camadas de los animales inmersos en el proceso de crianza y permite realizar un resumen que contiene la información sobre los elementos más importantes a tener en cuenta para realizar el cruce. No se pretende hacer una herramienta de simulación o análisis genético de los posibles resultados de una camada, ya que esto supone la utilización de conceptos que no son del alcance del proyecto. No se tuvieron en cuenta métricas morfológicas que caracterizan una raza en particular, ya que tampoco es el interés del desarrollo priorizar la crianza de razas sobre el bienestar del ejemplar. La aplicación no tiene en cuenta módulos de reglas de negocio del criadero ni de seguimiento financiero, ya que el desarrollo no se hace con el ánimo de generar lucro por medio de esta actividad, sino de proporcionar una herramienta que incentive el uso de la información recolectada para que se hagan cruces de una manera más apropiada. 1.6.2 Limitaciones . . Dado que en Colombia no existe legislación para controlar el cuidado y el cruce de los felinos domésticos ni regulaciones sobre los criaderos por parte de algún ministerio, la información que se va a guardar y el seguimiento que se le hará a los ejemplares dependerá de los veterinarios y los criadores interesados en el desarrollo del proyecto. No se hará adquisición licencias de uso privativo. Al tratarse de una herramienta sin ánimo de lucro se utilizará software libre. No se tendrá en cuenta el cálculo de patrones y colores de pelaje ya que al no contar con la información del genotipo del ejemplar algunas de las características debido a su carácter epistático son enmascaradas y el nivel de exactitud del cálculo disminuye significativamente (Gould, 1996)..
(21) 21 2. MARCO REFERENCIAL 2.1. Marco teórico 2.1.1 Consideraciones genéticas Para describir el modo en el que las características son heredadas entre ejemplares de padres a hijos es necesario hablar de las leyes de Mendel, las cuales se enuncian a continuación: Ley de la segregación: Esta ley plantea que, en la reproducción, un solo alelo de un par se transmite a cada gameto (células sexuales) lo que sucede de manera aleatoria, es decir, cada progenitor transmite parte de sus características a su progenie de manera aleatoria (Khanna, 2010). En el cuadro de Punnett de la figura 1 se muestra de manera sencilla cómo funciona esta ley.. Figura 1 Cuadro de Punnett de transmisión de alelos de la progenie.. Recuperado de Biology: Concepts and Applications Gene segregation pp. 192. Copyright 2010 por Cengage Learning.. El estado de los alelos del padre es PP y de la madre pp, cada uno de estos transmite de manera aleatoria su material genético. Es posible observar 4 posibles combinaciones que podrían manifestarse en la progenie que en este caso son todas iguales (Pp). Ley de la segregación independiente: Plantea que diferentes rasgos son segregados independientemente el uno del otro y al igual que en la ley de la segregación esto se hace de manera aleatoria (Khanna, 2010). En el experimento inicial de Mendel se buscó reproducir plantas que contenían dos rasgos diferentes, de color y textura, en la figura 2 se muestra el principio de esta experiencia y sus resultados..
(22) 22. Figura 2 Distribución independiente de plantas con dos características diferentes.. Recuperado de Mašková, J. The law of independent assortment. Copyright 2011-2014 por Wikilectures.eu.. Un método gráfico utilizado para encontrar las posibles soluciones resultantes de un cruce, utilizando las leyes de Mendel anteriormente mencionadas, es el cuadro de Punnett (Neale y Cardon, 2013), que consiste en una matriz n x n, en la cual el orden se incrementa cada vez que se añade un rasgo nuevo. Su utilización consiste en ubicar del lado izquierdo la información del estado de los alelos del macho, y en el lado superior los de la hembra y se procede a realizar el emparejamiento de cada uno de ellos tal como muestra en las figuras 1 y 2. Finalmente toman todos aquellos resultados en común y se relaciona la proporción que podrían ocupar cada uno en la progenie. 2.1.2 Variables de relación entre individuos La palabra consanguinidad deriva de una noción errónea de que la sangre era la base de la herencia (Cavalli-Sforza, Moroni y Zei, 2013). La consanguinidad tiene un componente social y genético que se refiere al cruce y/o reproducción entre dos individuos estrechamente relacionados (ancestros comunes). Entre mayor el grado de relación, mayor es la proporción de genes compartidos entre ellos, lo que aumenta el riesgo de desórdenes autosómicos (cromosomas no sexuales) debido al mayor riesgo de homocigosis en la descendencia (Coleman y Tsongalis, 2009). Es posible realizar el cálculo del coeficiente de inbreeding (COI) y relación (COR), que muestra el grado de parentesco de los ejemplares, y proporciona una idea de qué tipo de cruce se asemeja (inbreeding, linebreeding o crossbreeding)..
(23) 23 El inbreeding hace relación al emparejamiento de individuos con un mayor grado de relación que la población promedio (Tave, 1999), es decir, entre aquellos que contienen material genético idéntico debido a que descienden de ancestros comunes cercanos (Fox, Roff y Fairbairn, 2001). Por otro lado, el outbreeding es lo contrario del inbreeding, es el emparejamiento de ejemplares con un grado de relación menor que la población promedio (Thornhill, 1993). Finalmente, el linebreeding, consiste en el cruce de un ejemplar que posee características particulares, con múltiples parejas para conservar sus rasgos en una línea genética (Thiagarajan, 2014). Medidas de relación Nacen como resultado del trabajo del genetista estadounidense Sewall Wright, en 1921 que descubrió la manera de realizar el cálculo de lo que él denominó el coeficiente de inbreeding (COI) (Snustad y Simmons, 2015). Lo que expresa es la probabilidad de que el par de alelos de un locus en un individuo sean idénticos debido a que desciende de un ancestro cercano en común; dicho valor varía entre 0 y 1 (Wilson, 2000). Para realizar el cálculo es necesario tener la información del pedigrí de los ejemplares, entre mayor sea más acertado será su valor. Dicho cálculo se realiza mediante la ecuación 1 (Snustad y Simmons, 2015; Frankham, Ballou y Briscoe, 2010; Wilson, 2000). 𝑓 = ∑(0,5)𝑛 (1 + 𝑓𝑐𝑎 ) Ecuación 1. Cálculo del coeficiente de inbreeding.. Siendo: ƒ : Coeficiente de inbreeding (COI) de un individuo n : Número de individuos en un camino desde un pariente progenitor hasta un ancestro común y de vuelta al otro progenitor. 𝑓𝑐𝑎 : Coeficiente de inbreeding (COI) del ancestro. Dentro de los usos más importantes del coeficiente de inbreeding (COI) se encuentran: el análisis sobre la presencia o incremento de desórdenes recesivos originados por cruces con cierto grado de consanguinidad y la medición de la declinación de un fenotipo complejo (Snustad y Simmons, 2015), lo que es usado para producir las características morfométricas de una raza en particular. Gracias al cálculo y seguimiento es posible controlar efectos tanto benéficos como nocivos en los ejemplares de las camadas. La tasa del coeficiente de inbreeding (COI) es inversamente proporcional al tamaño de la población (Frankham et al., 2000). Otra de las medidas de relación a tener en cuenta es la del coeficiente de kinship, el cual es la probabilidad de que un par de alelos extraídos de un mismo locus de dos individuos puedan ser dos copias idénticas provenientes de un ancestro común (Snustad y Simmons, 2015). En el cálculo de este valor se utiliza la misma fórmula que para el coeficiente de inbreeding (COI), a diferencia de que se realiza sobre un.
(24) 24 ejemplar que hipotéticamente llegaría a ser resultado del cruce de dos ejemplares, es decir una cría. La diferencia entre coeficiente de inbreeding (COI) y de kinship radica en que, el coeficiente de inbreeding (COI) es la probabilidad de que dos alelos en el locus de un ejemplar sean idénticos por descendencia, mientras que el coeficiente de kinship es la probabilidad de que un par de alelos extraídos de manera aleatoria del mismo locus de dos individuos sean idénticos por descendencia (Snustad y Simmons, 2015). En 1922 Sewall Wright nuevamente planteó un nuevo valor para determinar la fracción de genes que dos ejemplares emparentados comparten, conocido como coeficiente de relación (Coefficient of relationship COR) (Snustad y Simmons, 2015). Este valor es calculado mediante el uso del coeficiente de inbreeding, su cálculo básicamente consiste en multiplicar el coeficientes de inbreeding de una hipotética camada por 2 como se muestra en la ecuación 2. . 𝑟𝑖𝑗 = 2𝑓𝑖𝑗. Ecuación 2. Cálculo del coeficiente de relación.. Siendo: 𝑟𝑖𝑗 : Fracción de genes compartidos. 𝑓𝑖 𝑓𝑗 : Coeficientes de inbreeding para i y j.. El número de la eficacia de la población es un indicador de la sanidad y estabilidad genética de una población. Da cuenta de la diversidad alélica presente en los ejemplares disponibles para dar crías, entre mayor sea este número, mayor es la probabilidad de contar con una población más sana (Wright, 1930). Este valor se calcula teniendo en cuenta a toda la población activa en un sistema reproductivo, como muestra la ecuación 3 (Snustad y Simmons, 2015).. 𝑁𝑒 =. 4(𝑁𝑓 𝑁𝑚 ) 𝑁𝑓 +𝑁𝑚. Ecuación 3. Cálculo de la eficacia de la población. Siendo: 𝑁𝑒 : Número de eficacia de la población. 𝑁𝑚 : Número de machos. 𝑁𝑓 : Número de hembras.. Una de las funcionalidades clave del prototipo es el cálculo del COI, COR y la eficacia de la población. Si bien el número de generaciones para la obtención de estos dos primeros coeficientes debería ser la mayor cantidad posible, teniendo en cuenta que en los criaderos consultados solo consideran hasta la segunda generación para sus estimaciones (comunicación verbal. López, 2017), en el prototipo se utilizará hasta la décima; ya que entre más generaciones se tomen en consideración, el tiempo de ejecución será mayor (The Institute of Canine Biology, 2012-2017)..
(25) 25 2.2 Marco referencial 2.2.1 Aspectos de la crianza de felinos domésticos El interés inicial de la crianza de felinos domésticos se basó en criar ejemplares con características fenotípicas particulares (rasgos físicos) para ser presentados en diferentes exposiciones, en las cuales sus cuidadores eran acreedores a premios y reconocimientos. Al presentarse diferentes ejemplares con características comunes, se realizó la estandarización de ciertos parámetros bajo el concepto de razas, siendo el interés principal que el resultado de la crianza cumpliera en una mayor proporción dichos lineamientos (Hartwell, 2003-2015). Al concentrar los esfuerzos en obtener rasgos físicos particulares, la salud de los especímenes se ve relegada, lo cual ocasiona la aparición de condiciones médicas no deseadas ya que el proceso de crianza no se realiza teniendo en cuenta estas condiciones, que intervienen de manera directa o indirecta en su resultado. Algunos factores a tener en cuenta son mencionados a continuación: . Nutricional: La alimentación inadecuada en los ejemplares, en especial en las hembras y durante el periodo gestacional, puede producir enfermedades y crías débiles. Uno de los problemas nutricionales más serios es la deficiencia de taurina (aminoácido), situación que incrementa la reabsorción fetal, abortos, muerte de las crías y problemas cardiacos (Niels, 1991). La mayor manifestación de esta deficiencia es la enfermedad conocida como cardiomiopatía congestiva, la cual compromete la vida del animal (Ettinger y Feldman, 2009). Es de suma importancia que los ejemplares reciban la alimentación adecuada dado su nivel de actividad, edad y condiciones médicas, ya que su deficiencia es un factor de riesgo para la salud del animal y sus futuras crías.. . Clínico: Es importante conocer el estado de salud de cada uno de los ejemplares, para evitar la propagación de enfermedades entre los individuos del sistema de crianza y a las futuras crías. Si al momento de realizar un cruce, uno de los padres presenta alguna condición médica particular, esta puede ser transmitida a su descendencia, esta probabilidad se incrementa si ambos padres cuentan con dicha condición, aumentando el riesgo cuando hay un alto grado de consanguinidad. Es posible categorizar las condiciones clínicas según el sistema que se ve afectado de la siguiente manera: cardiovasculares, dermatológicas, endocrinas, gastrointestinales, inmunológicas, musculo esqueléticas, neurológicas, oculares, renales y urinarias, reproductivas y finalmente.
(26) 26 respiratorias (Gough, 2004). Así como por agente etiológico: infecciosas, neoplásicas. . Reproductivo: Si bien hace parte de una condición clínica del animal, no necesariamente se asocia a algún tipo de afección en este caso, sino a su estado e historial reproductivo. Información que ayudará a determinar el momento adecuado para realizar el cruce entre estos ejemplares.. . Consanguinidad: La consanguinidad tiene un papel vital al momento de realizar el cruce, ya que dependiendo del parentesco que poseen los ejemplares, se debe tener en cuenta ciertas consideraciones especiales. Básicamente entre más parentesco exista, al cruzarlos es posible aumentar la probabilidad de aparición de características deseadas o no deseadas. Cuando es el caso de outbreeding, es posible que la “pureza” de la raza se vea comprometida, pero esto puede ayudar a disminuir características no deseadas de esa línea genética. 2.2.2 Software para criaderos. Teniendo en cuenta los factores anteriormente mencionados, es posible encontrar un número considerable de aplicaciones que, ya sea en versiones standalone o web, son en su mayoría de licencia privativa. Casi todas hacen énfasis en la gestión del documento de pedigrí, y en cuanto a los cruces la mayoría solo tiene en cuenta el coeficiente de inbreeding (COI) y coeficiente de relación (COR) (Breedmate, 2012). Existen otras más completas como Breeders Assistant (Tenset, 1996-2016) que realizan la gestión genealógica, coeficientes de consanguinidad, predicción de colores y patrones de pelaje teniendo en cuenta ancestros (versión standalone). Aunque algunas cuentan con módulos clínicos, ninguno tiene en cuenta esta información al momento de considerar un cruce, a pesar de que la información clínica, nutricional y reproductiva de los ejemplares, es de suma importancia para evitar posibles complicaciones en las camadas y resultados anómalos en las crías resultantes. A continuación 3 de las aplicaciones más completas que se pudieron encontrar en la web, y que ofrecían mayor información sobre su funcionamiento: Zooeasy® Zooeasy® es un software para criaderos que cuenta con versiones standalone y web disponible en 6 diferentes idiomas. La lista de características es extensa, incluye tanto de manejo de pedigrí, historia clínica, de shows, lista de contactos y un módulo financiero para el criadero (Zooeasy, 2017). En cuanto a la funcionalidad de cruces, dice contar con una herramienta de búsqueda de parejas, pero no se especifica si para esta función se hace uso del fenotipo, genotipo o que parámetros tiene en cuenta para realizar esta operación..
(27) 27 Esta aplicación no está diseñada para una especie en particular, es posible manejar a través de ella por lo menos 20 especies de animales diferentes, cuenta diferentes roles de usuario y su respectivo módulo de administración. Aunque tiene un registro de visitas de veterinarios no cuenta con un sistema robusto de información de condiciones médicas, El módulo de cruces de esta aplicación se limita a mostrar el árbol genealógico de ambos ejemplares, su coeficiente de inbreeding, relación (COR) y un cálculo de los posibles colores resultantes de la camada. Breeders Assistant® Hace parte de un grupo de aplicaciones que desarrolla la empresa Tenset®, todas enfocadas al manejo de pedigrí y de sistemas de crianza. Está en particular es la más completa y cuenta con 3 diferentes versiones, todas ellas standalone para Mac y Windows de uso bajo licencia privada. Esta aplicación permite almacenar información sobre los ejemplares, contactos, camadas, registros de visitas médicas, vacunas y finanzas del criadero entre otras opciones (Tenset, 1996-2014). En cuanto a su funcionalidad para cruces, en sus versiones profesional y comercial cuenta con un módulo llamado advanced genetics, a través del cual es posible realizar una predicción de colores de pelaje teniendo en cuenta ancestros, por lo tanto, estados de genes recesivos, su frecuencia y probabilidad de aparición. No manifiestan hacer uso de la información clínica, reproductiva o nutricional como datos asociados al cruce. Pedigree Explorer® Es una aplicación disponible únicamente para Windows, realiza especial énfasis en la gestión del pedigrí, algo que le hace diferente de muchas otras aplicaciones es que cuenta con lenguaje de scripting propio. Para manejo de cruces maneja un planificador, en donde se muestran COI y COR, los cuales pueden ser almacenados (Breedmate, 2012). Cuenta con un registro básico de historial médico de los ejemplares, aunque únicamente para perros, tiene la opción de registro de camadas, asociadas a sus progenitores, número de machos, hembras, aquellos que murieron, que fueron vendidos, fecha de notificación, si fue asistido el parto, peso promedio de nacimiento, lugar y dieta. Ofrece la posibilidad de registrar historial de vacunas con algunos datos básicos, es posible llevar el registro de celos, pero no especifican cómo hacen la gestión. Para el planificador de cruce únicamente se tiene en cuenta el grado de consanguinidad de los ejemplares. El prototipo al que hace relación el actual documento, se desarrolló en una arquitectura de múltiples capas con orientación web. Cuenta con información reproductiva relacionada con parejas y resultados de camadas previas. Con.
(28) 28 respecto al seguimiento nutricional es posible especificar la alimentación suministrada, información que está disponible en el gráfico de seguimiento de peso, además de adjuntar notas relacionadas con los efectos del alimento en el ejemplar. Permite el registro de consultas médicas que reúnen información de hallazgos y constantes fisiológicas, acciones preventivas, tratamientos administrados y controles con el veterinario. La funcionalidad de cruces, a diferencia de otras aplicaciones, facilita que el usuario cuente con un resumen de la información más relevante de ambos ejemplares (vacunas, condiciones médicas, reproductivas, tratamientos y resultados de camadas previas), además de mostrar los datos básicos de genealogía, coeficientes de inbreeding (COI), relación (COR) y efectividad de la población. 2.3 Marco tecnológico En la siguiente sección se trata temas relacionados con el modelo de arquitectura de software de múltiples capas con el que desarrolló el prototipo, las estructuras de persistencia implementadas en el proyecto; las cuales pertenecen a un modelo heterogéneo que incluye el uso de una base de datos relacional y una orientada a grafos, los API de persistencia que se utilizaron y finalmente, el funcionamiento del protocolo Two Phase Commit (Philip y Newcomer, 2009) para el manejo de transacciones distribuidas. 2.3.1 Arquitectura de múltiples capas Según la ISO/IEC/IEEE 42010 (2015) la cual afirma que “La arquitectura es aquella que se refiere a los conceptos fundamentales o propiedades de un sistema en su ambiente, presentes en sus elementos, relaciones y en los principios de su diseño y evolución”, haciéndola esencial para el sistema. Su relevancia nace de la necesidad de crear software de calidad que esté en la capacidad de lidiar con la complejidad inherente al problema que busca solucionar, desde el comienzo de su desarrollo hasta el fin de su vida útil (Arias y Durango, 2016). Por este motivo, la arquitectura de software ha sido un tema discutido por múltiples profesionales desde su primera mención en el año de 1970 en un informe técnico titulado Software Engineering Techniques (Buxton y Randell, 1970); a través de los años han surgido y evolucionado diferentes arquitecturas y elementos para su descripción. La arquitectura de software en múltiples capas tiene como objetivo la separación de unidades de software con una funcionalidad delimitada que puede ser separada físicamente de otras, de manera que pueda ser desarrollada, mantenida o reemplazada independientemente sin afectar otras capas (Fowler et al., 2002; Sommerville, 2005). De la correcta elección de las capas dependerá su adecuada evolución y las cualidades del producto que componen..
(29) 29 Algunas de las principales ventajas que ofrece esta arquitectura son: . . Mantenibilidad y flexibilidad al soportar el desarrollo incremental, ya que permite que cada capa sea desarrollada de manera independiente, proporcionando servicios a medida que estén disponibles, su bajo nivel de acoplamiento ofrece la posibilidad de reemplazar capas por otras equivalentes, mientras se mantengan protocolos de comunicación compatibles con las capas adyacentes (Sommerville, 2005; Thakur, 2008). Escalabilidad, ya que la separación en diferentes capas permite que la aplicación pueda crecer para recibir más carga, por ejemplo, replicando componentes de la aplicación en diferentes servidores (Grove, 2009; Jiménez, Patiño, Kemme, Pérez y Serrano, 2009) lo que permite mejorar la disponibilidad de los servicios ofrecidos por la aplicación (Menascé y Fernandes, 2000).. Dependiendo la elección de las capas otras ventajas podrían obtenerse, como la interoperabilidad y compatibilidad con otras aplicaciones o segmentos de ellas (Thakur, 2008), la seguridad estableciendo un servicio de firewall en una de las capas, lo que restringe el acceso a los servidores de la aplicación y bases de datos (Menascé y Fernandes, 2000), incluso si la aplicación presenta un alto grado de modularidad, se podría hacer reúso de partes de ella en aplicaciones similares lo que ahorraría costos y tiempo de desarrollo (Thakur, 2008). Con respecto al rendimiento ofrecido por una arquitectura de múltiples capas, es un aspecto que se puede presentar a favor o en contra de la aplicación. Debido a la estructura, un servicio solicitado desde una capa superior puede tener que ser interpretado varias veces en diferentes capas al ser procesado (Sommerville, 2005) e incluso en redes muy congestionadas, la comunicación entre los dispositivos físicos que despliegan las capas puede verse comprometida, condiciones que disminuye el tiempo de respuesta de la aplicación. Por otro lado, la especialización de los servidores según su tarea y la delegación de responsabilidades a otros dispositivos, mejora el rendimiento de la aplicación, lo que es más notable en tareas más extensas o complicadas (Thakur, 2008; Grove, 2009). La división más común y recomendada para aplicaciones medianas es la de 3 capas (Figura 3), la cual consta de una capa de presentación que es donde el usuario interactúa directamente, ya que mediante su interfaz provee acceso a los servicios, la capa de base de datos que los almacena y protege contra fallos e inconsistencias y la de lógica de negocios, que contiene las reglas para manejar los datos y la lógica del negocio, funcionando como intermediaria entre las otras dos capas (Liu, 2011)..
(30) 30. Figura 3 Configuración típica de una arquitectura de 3 capas En el cliente solo se concentra la parte gráfica de la aplicación, la lógica de negocios y el manejo de datos se encuentran separados. Recuperado de Web Based Application Development. Typical two-tier architecture. Copyright 2010 por Jones and Bartlett Publishers, LCC.. Para aplicaciones de tamaño mediano a empresarial, es recomendable adoptar una arquitectura que posea un número mayor de capas, por ejemplo, una arquitectura de 4 y 5 capas puede tomar diferentes configuraciones según las necesidades de la aplicación a desarrollar, ya sea haciendo énfasis en aumentar la modularidad en la capa de presentación, lógica de negocios o en el acceso a los datos (Thakur, 2008). Cabe señalar que, a mayor número de capas la complejidad del desarrollo aumenta y serán necesarios mayores recursos y esfuerzos debido a que se necesitará mayor capacidad de cómputo y de red para que la aplicación sea desplegada (Mukhar y Zelenak, 2006).. Figura 4 Ejemplo de arquitectura de 5 capas Este ejemplo hace énfasis en la lógica de negocios, separándola en 3 capas distintas con sus funcionalidades delimitadas. Recuperado de Beginning Java EE 5 From Novice to Professional. Ntier Architecture. Copyright © 2006 by Kevin Mukhar and Chris Zelenak, with James L. Weaver and Jim Crume.
(31) 31 Es importante tener en cuenta que una arquitectura de múltiples capas no exige que cada una de las capas se ejecute en un ordenador separado, es posible ejecutar cada una de ellas en el mismo. Su mayor ventaja reside en que cada una de las capas cuente con el nivel de modularidad suficiente para poder separar cada un ordenador diferente de ser requerido (Mukhar y Zelenak, 2006). Con el presente trabajo se construyó un prototipo web sobre una arquitectura en tres capas (presentación, lógica y persistencia) que facilita la modularidad y escalabilidad del producto. La capa de persistencia esta soportada en una base de datos NoSQL que facilita el modelado de los atributos y las relaciones de consanguinidad entre los miembros de la especie; adicionalmente cuenta con una base de datos relacional que simplifica la implementación de las funcionalidades de gestión de las consultas médicas y tratamientos asociados a los ejemplares. 2.3.2 Bases de datos NoSQL Desde los primeros años de utilización de sistemas de almacenamiento de datos, la necesidad ha sido creciente en diferentes aspectos, capacidad, rendimiento, seguridad, escalabilidad, por solo nombrar algunos, y en respuesta a estos requerimientos, han surgido diferentes maneras de satisfacerlos, desarrollando nuevas tecnologías ya sea de software o hardware. Uno de los modelos más ampliamente usados ha sido el relacional, ya que reúne gran cantidad de características deseables en un sistema de base de datos, pero dado el enorme crecimiento y demanda a los sistemas informáticos que han considerado el surgimiento del internet, con la aparición de nuevos conceptos como por ejemplo las redes sociales y el Big Data, las empresas que trabajan en estos segmentos se han visto en la necesidad de encontrar nuevas maneras de satisfacer los requerimientos que implican estas nuevas tecnologías (McKnight, 2014). Ya que los costos asociados a escalar el modelo relacional resultan muy elevados se recurren a tecnologías NoSQL lo que para algunos significa “Not Only SQL”, en donde las más comunes de ellas son (Zhu et al., 2014): . Bases de datos clave/valor. Bases de datos documentales. Base de datos columnar. Base de datos orientada a grafos.. Una base de datos orientada a grafos se basa en la teoría de grafos la cual inició su estudio Leonhard Euler en el año de 1735 (Gross y Yellen, 2004). Aunque su aplicación inicial fue para resolver problemas de topología, se le han encontrado múltiples usos como por ejemplo el almacenamiento y gestión de datos (Zhu et al., 2014). Hoy día la teoría de grafos es una ciencia del campo de la matemática y de la computación, que se encarga del estudio de las relaciones entre objetos, llamados nodos, tanto nodos como relaciones tienen propiedades que les.
(32) 32 describen. Su base teórica establecida durante cientos de años de estudio, brinda la solidez para su aplicación en un sistema de almacenamiento (Coronel y Morris, 2016). En este tipo de base de datos se hace especial énfasis en las relaciones entre los datos y su aplicación no se limita al manejo de grandes volúmenes de información, sino cuando la estructura de los datos puede ser modelada de manera natural como un grafo, lo que constituye uno de sus fuertes (McKnight, 2014). Dentro de las ventajas que esta orientación ofrece se encuentran el rendimiento, la flexibilidad, la agilidad y su diseño intuitivo para el almacenamiento (Robinson, Webber y Eifrem, 2015). Aunque su versatilidad le permite modelar casi cualquier tipo de datos, sus principales aplicaciones se encuentran en las redes sociales, análisis de rutas de viajes, tráfico financiero y de redes de transporte (McKnight, 2014). La estructura básica de un grafo para el almacenamiento de datos consta de nodos y relaciones, cada uno de ellos puede tener etiquetas que indican el rol que desempeñan en su contexto y atributos de tipo clave valor que representan datos de interés para almacenar. Las relaciones siempre tienen una dirección, un tipo, un nodo inicial y final, por lo general las propiedades de las relaciones contienen información cuantitativa como pesos, costos, distancias, tiempo, entre otros. Las relaciones pueden ser recorridas sin importar la dirección que posean (Neo4j, 2016).. Figura 5 Grafo con propiedades y etiquetas Grafo de 6 nodos con 3 etiquetas diferentes, 6 relaciones de 2 tipos diferentes, una de ellas contiene la propiedad de fecha en la que se realizó la relación. Recuperado de Beginning neo4j.com Labeled Property Graph Data Model Copyright © 2016 Neo Technology, Inc.. En la figura 5 se muestra un ejemplo de grafo que contiene información sobre libros, sus autores y compradores, las etiquetas de los nodos son Persona, Autor, y Libro, (los nodos pueden tener múltiples etiquetas) dentro de cada nodo se encuentran sus respectivos atributos de tipo clave-valor (nombre: Ian). Las relaciones en este caso son de 2 tipos, ‘Escribió’ y ‘Adquirió’ a diferencia de los.
Documento similar
Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:
En junio de 1980, el Departamento de Literatura Española de la Universi- dad de Sevilla, tras consultar con diversos estudiosos del poeta, decidió propo- ner al Claustro de la
E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi
[r]
SVP, EXECUTIVE CREATIVE DIRECTOR JACK MORTON
Social Media, Email Marketing, Workflows, Smart CTA’s, Video Marketing. Blog, Social Media, SEO, SEM, Mobile Marketing,
Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied
Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas