• No se han encontrado resultados

Diseño y Desarrollo de un Prototipo Web y Móvil de Apoyo a la Gestión de Litigio de Procesos Judiciales Civiles

N/A
N/A
Protected

Academic year: 2020

Share "Diseño y Desarrollo de un Prototipo Web y Móvil de Apoyo a la Gestión de Litigio de Procesos Judiciales Civiles"

Copied!
144
0
0

Texto completo

(1)

DISEÑO Y DESARROLLO DE UN PROTOTIPO WEB Y MOVIL DE APOYO A LA GESTION DE LITIGIO DE PROCESOS JUDICIALES CIVILES

Presentado por:

OMAR ALEJANDRO TÉLLEZ FLECHAS

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA

PROYECTO CURRICULAR DE SISTEMAS BOGOTÁ D.C.

(2)

2

DISEÑO Y DESARROLLO DE UN PROTOTIPO WEB Y MOVIL DE APOYO A LA GESTION DE LITIGIO DE PROCESOS JUDICIALES CIVILES

Presentado Por:

OMAR ALEJANDRO TÉLLEZ FLECHAS cod. 20031020094

Trabajo de grado

Director

Julio Barón Velandia Profesor facultad de Ingeniería

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA

PROYECTO CURRICULAR DE SISTEMAS BOGOTÁ D.C.

(3)

3

TABLA DE CONTENIDO

Pág.

TABLA DE CONTENIDO... 3

LISTA DE TABLAS ... 8

LISTA DE IMAGENES ... 9

GLOSARIO ... 11

0. INTRODUCCIÓN ... 14

1. PLANTEAMIENTO DEL PROBLEMA ... 16

1.1 DESCRIPCIÓN DEL PROBLEMA ... 16

1.2 FORMULACIÓN DEL PROBLEMA ... 17

2. OBJETIVOS ... 18

2.1 OBJETIVO GENERAL ... 18

2.2 OBJETIVOS ESPECÍFICOS ... 18

3. JUSTIFICACIÓN ... 19

4. ALCANCES Y LIMITACIONES ... 22

4.1 ALCANCES ... 22

4.2 LIMITACIONES ... 23

5. MARCO CONCEPTUAL ... 24

5.1 PROCESO JUDICIAL ... 24

5.1.1 Clasificación de los procesos judiciales ... 24

(4)

4

5.2 ACTOS PROCESALES ... 28

5.2.1 Tipos de actos procesales ... 28

6. MARCO TECNOLÓGICO ... 30

6.1 APLICACIONES WEB ... 30

6.1.1 Java Enterprise Edition (Java EE)... 30

6.2 APLICACIONES MÓVILES ... 38

7.1.2 Definición de objetivos, alternativas y restricciones ... 53

7.1.3 Evaluación de alternativas y reducción de riesgos ... 54

7.1.4 Desarrollo y validación de producto ... 54

7.1.5 Planificación del siguiente ciclo ... 55

7.2 METODOLOGIA DE INTEGRACIÓN Y PRUEBAS ... 56

7.2.1 Descripción ... 56

8. DEFINICIÓN DE REQUERIMIENTOS ... 57

8.1 FUNCIONALIDAD DE REGISTRO DE PROCESOS JUDICIALES ... 57

8.1.1 Requerimientos funcionales ... 57

8.1.2 Requerimientos de información ... 58

8.2 FUNCIONALIDAD DE CONSULTA DE PROCESOS JUDICIALES ... 61

8.2.1 Requerimientos funcionales ... 61

8.2.2 Requerimientos de información ... 62

8.3 FUNCIONALIDAD DE CAPTURA Y ENVÍO DE INFORMACIÓN DE ACTUACIONES PROCESALES ... 65

8.3.1 Requerimientos funcionales ... 65

(5)

5

8.4 FUNCIONALIDAD DE RECEPCIÓN Y ORGANIZACIÓN DE

INFORMACIÓN PROCESAL ... 67

8.4.1 Requerimientos funcionales ... 67

8.4.2 Requerimientos de información ... 67

8.5 FUNCIONALIDAD DE AUTENTICACIÓN DE USUARIOS ... 69

8.5.1 Requerimientos funcionales ... 69

9.1.3 Capa de Presentación Web ... 74

9.1.4 Capa de Presentación Móvil ... 74

9.1.5 Comunicación ... 74

9.1.6 Estructura de paquetes ... 74

9.2 MODELO DE CLASES ... 76

9.2.1 Clases del paquete ‘datos.entidades’ ... 76

9.2.2 Clases del paquete ‘datos.DAO’ ... 76

9.2.3 Clases del paquete ‘servicios’ ... 77

9.2.4 Clases del paquete ‘web.controladores’ ... 78

9.3 DIAGRAMAS DE SECUENCIA ... 80

9.3.1 Funcionalidad de registro de procesos judiciales ... 80

9.3.2 Funcionalidad de consulta de procesos judiciales ... 82

9.3.3 Funcionalidad de captura y envío de información de actos procesales .. 83

9.3.4 Funcionalidad de recepción y organización de información procesal ... 84

9.3.5 Funcionalidad de autenticación de usuarios ... 84

10. INTERFAZ DE USUARIO ... 86

10.1 FUNCIONALIDAD DE REGISTRO DE PROCESOS JUDICIALES ... 86

10.2 FUNCIONALIDAD DE CONSULTA DE PROCESOS JUDICIALES ... 88

10.3 FUNCIONALIDAD DE CAPTURA Y ENVÍO DE INFORMACIÓN DE ACTOS PROCESALES ... 90

(6)

6

11. DISEÑO DE MODELO LÓGICO Y FÍSICO DE BASE DE DATOS... 92

11.1 DISEÑO MODELO LÓGICO DE LA BASE DE DATOS ... 92

11.2 DISEÑO MODELO FÍSICO DE LA BASE DE DATOS ... 93

11.2.1 Creación del esquema ... 93

12. DESARROLLO DE LOS MÓDULOS DEL PROTOTIPO ... 97

12.1 HERRAMIENTAS Y FRAMEWORKS UTILIZADOS ... 98

13. DISEÑO DE PRUEBAS DEL SISTEMA ... 100

13.1 DISEÑO DE REGLAS DE INTEGRACIÓN ... 100

13.2 DISEÑO DE REGLAS DE PRUEBAS ... 100

13.2.1 Diseño general de pruebas unitarias... 100

13.3 CRITERIOS DE ACEPTACIÓN ... 101

13.3.1 Funcionalidad de registro de procesos judiciales ... 101

13.3.2 Funcionalidad de consulta de procesos judiciales ... 102

13.3.3 Funcionalidad de captura y envío de información de actos procesales 104 13.3.4 Funcionalidad de recepción y organización de información procesal ... 105

13.3.5 Funcionalidad de autenticación de usuarios ... 105

14. RESULTADOS OBTENIDOS ... 107

15. ESTIMACIÓN BENEFICIO / COSTO ... 116

15.1 ESTIMACIÓN DE COSTOS RELACIONADOS CON PROBLEMAS DE GESTIÓN ... 116

15.2 ESTIMACIÓN DE COSTO DE IMPLEMENTACIÓN DEL PROYECTO.... 117

(7)

7

16. TRABAJO FUTURO Y RECOMENDACIONES ... 121

17. CONCLUSIONES ... 122

(8)

8

LISTA DE TABLAS

Tabla 1: Requerimiento crear proceso judicial ... 57

Tabla 2: Requerimiento crear sujeto procesal ... 58

Tabla 3: Requerimiento administrar juzgados ... 58

Tabla 4: Información sobre el proceso judicial ... 59

Tabla 5: Información sobre el sujeto procesal ... 59

Tabla 6: Información sobre juzgados ... 60

Tabla 7: Requerimiento consultar lista de procesos judiciales activos ... 61

Tabla 8: Requerimiento consultar lista de procesos judiciales inactivos ... 61

Tabla 9: Requerimiento consultar proceso judicial específico ... 62

Tabla 10: Información sobre lista de procesos judiciales activos ... 62

Tabla 11: Información sobre lista de procesos judiciales inactivos ... 63

Tabla 12: Información sobre consulta de proceso judicial ... 63

Tabla 13: Requerimiento captura y envío de información de actuación procesal.. 65

Tabla 14: Información sobre captura y envío de información procesal ... 66

Tabla 15: Requerimiento recepción y organización de información procesal ... 67

Tabla 16: Información sobre recepción y organización de información procesal .. 68

Tabla 17: Requerimiento de control de acceso a componente móvil ... 69

Tabla 18: Requerimiento de control de acceso a componente web ... 69

Tabla 19: Información sobre usuarios en el sistema ... 70

Tabla 20: Información sobre roles de los usuarios en el sistema ... 70

Tabla 21: Requerimientos no funcionales ... 71

Tabla 22: Criterios de aceptación para funcionalidad de registro de procesos

Tabla 25: Criterios de aceptación para funcionalidad de recepción y organización de información procesal ... 105

Tabla 26: Criterios de aceptación para funcionalidad de autenticación de usuarios ... 105

Tabla 27: Pérdida anual estimada para abogado con 1500 procesos simultáneos ... 117

Tabla 28: Pérdida anual estimada de acuerdo a cantidad de procesos simultáneos ... 117

Tabla 29: Costos de talento humano para el desarrollo del proyecto ... 118

Tabla 30: Costos estimados de implementación del proyecto ... 119

(9)

9

LISTA DE IMAGENES

Imagen 1: Etapas de un proceso civil colombiano ... 26

Imagen 2: Contenedores Java EE estándar ... 31

Imagen 3: Servicios proporcionados por los contenedores Java EE ... 35

Imagen 4: Archivos en contenedores Java EE ... 36

Imagen 5: Secciones y capas principales del sistema operativo Android ... 40

Imagen 6: Porcentaje de uso de las diferentes versiones de Android ... 41

Imagen 7: Servicio web y uno de sus clientes ... 42

Imagen 8: Interacción de un servicio web SOAP ... 45

Imagen 9: Interacción de un servicio web tipo REST ... 45

Imagen 10: interacción en técnica de mapeo objeto-relacional ... 48

Imagen 11: Modelo en espiral para el proceso de desarrollo de software ... 52

Imagen 12: Niveles de la arquitectura usada ... 72

Imagen 13: Capas de la arquitectura usada ... 73

Imagen 14: Diagrama de paquetes del sistema ... 75

Imagen 15: Diagrama de clases del paquete 'datos.entidades' ... 76

Imagen 16: Diagrama de clases del paquete 'datos.DAO' ... 77

Imagen 17: Diagrama de clases del paquete 'servicios' ... 78

Imagen 18: Diagrama de clases del paquete 'web.controladores' ... 79

Imagen 19: Diagrama de secuencia de registro de procesos judiciales ... 80

Imagen 20: Diagrama de secuencia de administración de juzgados en el sistema ... 81

Imagen 21: Diagrama de secuencia de consulta de procesos activos ... 82

Imagen 22: Diagrama de secuencia de consulta de procesos inactivos ... 82

Imagen 23: Diagrama de secuencia de captura y envío de información de actos procesales ... 83

Imagen 24: Diagrama de secuencia de recepción y organización de información procesal ... 84

Imagen 25: Diagrama de secuencia de autenticación de usuarios en componente móvil ... 85

Imagen 26: Diagrama de secuencia de autenticación de usuario en componente web ... 85

Imagen 27: Interfaz de usuario de formulario de creación de proceso judicial ... 86

Imagen 28: Interfaz de usuario de formulario de agregación de sujeto procesal .. 87

Imagen 29: Interfaz de usuario de administración de juzgados ... 87

Imagen 30: Interfaz de usuario de búsqueda de procesos ... 88

Imagen 31: Interfaz de usuario de visualización de proceso ... 88

Imagen 32: Interfaz de usuario de visualización de registro de actuación ... 89

Imagen 33: Interfaz de usuario de definición de tipos de actuación ... 90

Imagen 34: Interfaz de usuario de registro de actuación ... 90

(10)

10

Imagen 37: Diseño modelo lógico de base de datos ... 92

Imagen 38: Interfaz de formulario de autenticación ... 107

Imagen 39: Interfaz de creación de proceso judicial en el sistema ... 108

Imagen 40: Interfaz de administración de juzgados en el sistema ... 108

Imagen 41: Interfaz de agregación de sujeto procesal a un proceso judicial ... 109

Imagen 42: Validaciones de lógica de negocio en la creación de procesos judiciales... 110

Imagen 43: Interfaz de consulta de procesos judiciales activos ... 110

Imagen 44: Interfaz de consulta de procesos judiciales inactivos ... 111

Imagen 45: Interfaz de visualización de detalle de proceso judicial ... 111

Imagen 46: Interfaz de visualización de registro fotográfico de actuación ... 112

Imagen 47: Interfaz de administración de tipos de actuación ... 113

Imagen 48: Interfaz de autenticación en componente móvil ... 113

Imagen 49: Interfaz de validación de credenciales en componente móvil ... 114

Imagen 50: Interfaz de registro de actuación procesal en componente móvil ... 114

(11)

11

GLOSARIO

ACTO PROCESAL (Actuación Procesal): manifestación de voluntad que tiene relevancia procesal y en virtud del cual se crean, modifican o extinguen efectos procesales.

ANDROID: sistema operativo basado en el kernel de Linux diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos inteligentes o tabletas.

API: conjunto de funciones y procedimientos de programación, ofrecido por alguna biblioteca de programación, para ser utilizado por otro software como una capa de abstracción.

APLICACIÓN MÓVIL: aplicación informática diseñada para ser ejecutada en teléfonos inteligentes, tabletas y otros dispositivos móviles.

APLICACIÓN WEB: aplicación de software que se utiliza accediendo a un servidor web a través de internet o de una intranet mediante un navegador.

AUTO: acto emanado del juez o magistrado que no está encaminado a resolver el objeto del debate, sino que se limita a disponer un trámite para impulsar el proceso, definir algún incidente, o cualquier otro aspecto esencial.

JURISDICCIÓN: potestad derivada de la soberanía del Estado de aplicar el derecho en casos concretos, resolviendo de modo definitivo una controversia, es ejercida por los tribunales de justicia.

CLIENTE LIGERO: software o computador que se encarga de transportar la entrada y salida de información entre el usuario y el servidor remoto, en una arquitectura de red cliente-servidor.

DEMANDA: petición formulada ante un tribunal de justicia mediante la cual la parte demandante expone pretensiones frente a la parte demandada.

(12)

12

DEPENDIENTE JUDICIAL: persona encargada de vigilar los movimientos de los procesos judiciales de un abogado en los juzgados respectivos y tomar copias de los mismos.

ETAPA PROCESAL: cada una de las subdivisiones que presentan los procesos, y en cuyo transcurso tienen lugar determinados actos materiales y jurídicos, así como hechos jurídicos.

FALLO: acto procesal proveniente de un tribunal de justicia, mediante el cual se resuelve las peticiones de las partes, o autoriza u ordena el cumplimiento de determinadas medidas.

FIRMA DIGITAL: mecanismo criptográfico que permite al receptor de un mensaje firmado digitalmente determinar la entidad originadora de dicho mensaje y confirmar que el mensaje no ha sido alterado.

INADMISION: Es un acto por el cual el juez se abstiene de darle curso a la demanda cuando ésta no cumple determinados requisitos, y le da al demandante el término de cinco (5) días para que los subsane.

INFORMACIÓN PROCESAL: información relacionada con un proceso judicial y su desarrollo.

JAVA EE (Java Enterprise Edition): plataforma de programación para desarrollar y ejecutar software de aplicaciones en el lenguaje de programación Java. Permite utilizar arquitecturas de n capas distribuidas y se apoya en componentes de software modulares ejecutándose sobre un servidor de aplicaciones.

JUEZ: autoridad pública que sirve en un tribunal de justicia y que se encuentra investido de la potestad jurisdiccional para aplicar la ley y las normas jurídicas.

JURISPRUDENCIA: conjunto de decisiones de los tribunales de justicia sobre una materia determinada, de las cuales se puede extraer la interpretación dada por los jueces a una situación concreta.

JUZGADO: órgano público cuya finalidad principal es ejercer la jurisdicción, es decir, resolver litigios con eficacia de cosa juzgada.

LITIGIO: conflicto de intereses calificado y elevado a una autoridad jurisdiccional por un sujeto de derecho con una intención o pretensión contra otro que manifiesta una resistencia o que se opone al planteamiento del primero.

(13)

13

PERSONAL JURISDICCIONAL: personal envestido con la autoridad de aplicar el derecho en casos concretos, para resolver una controversia.

PLAZO PROCESAL: lapso de tiempo dentro del cual, en términos legales, debe realizarse un acto procesal.

PROCESO JUDICIAL: conjunto de actos coordinados y sucesivos realizados por los órganos investidos de jurisdicción y los demás sujetos que actúan en él, con el fin de obtener la aplicación de la ley sustancial o material a un caso concreto o particular.

RADICACIÓN DE DEMANDA: acto mediante el cual se da por recibida una demanda nueva en un tribunal de justicia.

REST: técnica de arquitectura de software para desarrollar servicios en sistemas hipermedia distribuidos. Actualmente se usa el término para describir interfaces web que utilicen el protocolo HTTP sin las abstracciones adicionales de los protocolos basados en patrones de intercambio de mensajes.

SENTENCIA: acto mediante el cual un juez o magistrado expresa la voluntad que el estado toma sobre el objeto del proceso

SERVICIOS WEB (Web Services): Conjunto de especificaciones que posibilitan la comunicación y provisión de servicios entre diferentes aplicaciones vía web.

SISTEMA JUDICIAL: conjunto de instituciones gubernamentales y normas jurídicas, que están en vigor en determinado lugar y época.

SOAP: protocolo estándar que define como dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML.

TERMINO PROCESAL: límite legal de plazo en el cual tiene que realizarse un acto procesal.

(14)

14

0. INTRODUCCIÓN

En el marco legal, y concretamente en el ámbito civil colombiano, cuando es presentada una demanda ante una autoridad jurisdiccional se inicia un proceso judicial, el cual tiene una transición por varias etapas desde la radicación de la demanda hasta la sentencia por parte de un juez; durante cada una de las etapas del proceso ocurren diversos actos que en su gran mayoría quedan plasmados en un documento. Por cada parte implicada en el conflicto usualmente hay un abogado que litiga en el proceso procurando defender los intereses de su respectivo cliente, lo que implica consultar todos los documentos del proceso correspondiente; ya que estos documentos determinan la base para poder generar manifestaciones y entregarlas al juzgado, teniendo un plazo legal para la entrega.

En el país existe un elevado índice de demandas civiles, las cuales tienen un procedimiento judicial extenso y de estructura predominantemente escrita para su solución1, además legalmente no existe un límite para la cantidad de procesos judiciales que puede litigar un abogado de manera simultánea y por lo tanto ésta cantidad de procesos litigados paralelamente suele superar el millar. Con el alto volumen de trabajo de los abogados y el largo procedimiento de cada proceso, habitualmente se generan problemas concernientes con la gestión y organización del trabajo debido a la dificultad de llevar un control adecuado de las fechas y plazos en todos los procesos, y aunque cada abogado suele tener asistentes que saquen copias a los actos de los procesos en los juzgados, existe un retraso entre la toma de estas copias y su entrega al abogado, debido a que la alta cantidad de éstas copias implica un considerable gasto de tiempo para su unión y organización. Los problemas de gestión y organización del trabajo afectan tanto a los abogados como a sus clientes, debido a que suelen incumplirse las fechas establecidas para la entrega de manifestaciones al juzgado en algunos procesos, lo cual puede implicar la emisión de fallos en contra en dichos procesos.

En este proyecto se propone una solución haciendo uso de las tecnologías de la información, usándolas como herramientas de soporte a la gestión del litigio de los abogados, buscando que la información de los actos procesales se obtenga de manera oportuna y que la información se encuentre organizada y centralizada de manera digital, facilitando el cumplimiento de los términos delimitados dentro del proceso y permitiendo el acceso ágil a la información. Para lograr la solución, dentro del marco de este trabajo de grado se realiza el diseño y desarrollo de un prototipo para apoyar la gestión del litigio de procesos judiciales civiles, que consta

1 Según el informe nacional de competitividad 2011-2012, el 58% de las demandas en Colombia son civiles,

(15)

15

(16)

16

1. PLANTEAMIENTO DEL PROBLEMA

1.1 DESCRIPCIÓN DEL PROBLEMA

El sistema judicial actual en Colombia determina que los procesos judiciales cumplan con una serie de actos procesales, los cuales pueden provenir del juez o de las partes intervinientes en el proceso (demandante, demandado y/o terceros). Para que los actos procesales tengan validez es necesario cumplir con los términos que indica la ley, entre los cuales se encuentra el plazo para presentarlos, que puede ir desde dos hasta treinta días.

Los actos procesales se realizan en orden secuencial, por consiguiente los abogados tienen la necesidad de vigilar los procesos constantemente para estar al tanto de los actos emanados por las demás partes implicadas en el proceso, y poder así, actuar de manera oportuna según sea el caso. Para llevar a cabo la vigilancia de procesos, los abogados se apoyan de asistentes llamados dependientes judiciales, quienes día a día revisan en los juzgados respectivos los movimientos que se hayan generado dentro del proceso judicial y ya que cada actos de esta cantidad de procesos en los juzgados, estar pendiente de las fechas de esos actos y generar sus manifestaciones por cada proceso dentro de los plazos que dicta cada juzgado; dado que si se incumplen los plazos dictados se considera como vencimiento de términos y el juzgado no admite la manifestación realizada por el abogado.

Actualmente existe un tiempo de retraso entre la captura de la información procesal en los juzgados por parte de los dependientes y la entrega de ésta información al abogado, debido a que el procedimiento de sacar las copias de los actos, unirlas y organizarlas puede tardar entre uno y dos días, dependiendo de la cantidad de procesos. El retraso entre la captura de la información procesal y su entrega al abogado ocasiona que se pierda parte del tiempo que otorga la ley para realización de manifestaciones respecto del acto procesal, lo cual puede provocar la disminución de la calidad de las manifestaciones o hasta el vencimiento de términos, teniendo en cuenta que hay plazos únicamente de dos días.

(17)

17

proceso, de manera que todas las copias de los actos consultados deban ser archivadas, ocasionando que se reserve gran parte del espacio en las oficinas para este fin debido a la alta cantidad de procesos y de documentos que componen cada uno, además del impacto ambiental que supone el uso de esta cantidad de papel.

1.2 FORMULACIÓN DEL PROBLEMA

¿Cómo apoyar la gestión de litigio de procesos judiciales, reduciendo el tiempo de acceso de los abogados a los actos consultados por los dependientes judiciales y manteniendo un registro unificado y ordenado de los actos procesales, con sus respectivas fechas y términos?

(18)

18

2. OBJETIVOS

2.1 OBJETIVO GENERAL

Diseñar y desarrollar un prototipo software para apoyar la gestión de litigio de procesos judiciales civiles, con el uso de tecnologías web y móviles.

2.2 OBJETIVOS ESPECÍFICOS

• Establecer los requerimientos funcionales, no funcionales y de información necesarios en el ámbito de la gestión de litigio de procesos judiciales civiles.

• Diseñar una arquitectura que permita mantener la información centralizada, y obtener ésta información por medio del uso de clientes web y una aplicación móvil usando protocolos de internet, teniendo como base los requerimientos establecidos.

• Diseñar la interfaz de usuario de la aplicación web y la aplicación móvil de manera que exista una interacción intuitiva entre los usuarios y el sistema. • Diseñar el modelo lógico y físico de base de datos del sistema incluyendo

los datos persistentes tanto de la aplicación web como de la aplicación móvil que permita mantener consistencia en el modelo.

• Desarrollar los diferentes módulos web y móvil del prototipo de sistema de información de manera que se cumplan con las funcionalidades requeridas. • Diseñar las pruebas del sistema aplicando integración continua como

mecanismo de verificación del correcto incremento de funcionalidades. • Realizar la documentación técnica y de usuario necesaria para el correcto

entendimiento del sistema.

(19)

19

3. JUSTIFICACIÓN

La implementación de tecnologías de información y telecomunicaciones ha crecido enormemente en los últimos años incluyendo el ámbito de la administración, debido al gran aporte de utilidad que las herramientas tecnológicas brindan en este tema; el contexto de la administración de justicia no ha sido la excepción, ya que alrededor del mundo se han ido implementando diversas estrategias tecnológicas para apoyar esta gestión. Uno de los primeros casos de implementación de tecnologías de información y comunicación en el sistema judicial en América Latina es Costa Rica, que hace uso de expedientes electrónicos en los procesos judiciales y permite realizar toda la comunicación del proceso judicial, tal como consultar, notificar y contestar las demandas totalmente de manera digital, logrando desde su implementación la agilización en el avance de los procesos judiciales y la reducción de la saturación de los juzgados (Madrigal, 2005).

Para el caso colombiano, aunque se tiene planeada la implementación de tecnologías de información para optimizar la gestión de la rama judicial, ésta no ha tenido avance en su ejecución y puede demorarse aún muchos años, lo cual sumado con los altos niveles de congestión judicial generan un ambiente complicado para los usuarios del sistema judicial colombiano el cual, además, es diagnosticado como ineficiente (Competitividad, 2013)

De manera que actualmente en Colombia la forma en la que se da curso a un proceso judicial es manual, siendo esto especialmente impactante para los usuarios del sistema en el caso de la notificación de las actuaciones, ya que la es impredecible el momento en el que el juez se va a manifestar sobre un proceso determinado.

(20)

20

que al no poder seguir con el curso normal del proceso haciendo entrega de las respectivas manifestaciones al juzgado, es una práctica habitual por los abogados abrir otro proceso judicial con las mismas demandas, contribuyendo de esta manera en la saturación del sistema judicial.

Además de la dificultad de llevar control en la vigilancia de procesos, se debe considerar que una vez que el juzgado ha generado una manifestación, empieza a contarse el tiempo para que los abogados de las partes procedan de acuerdo a la manifestación, y ya que éste plazo va desde 2 hasta 30 días algunas veces el tiempo entre la captura de una manifestación y su puesta en conocimiento al abogado es mayor que el plazo dado por ley para responder al juez, dado que los asistentes del abogado deben recorrer todos los juzgados, sacar copias o fotografías de las actuaciones, organizarlas y luego entregarlas al abogado, y estas actividades suelen tardar entre 1 y 2 días, debido a la alta cantidad de procesos litigados simultáneamente por el abogado, haciendo que no se aproveche de manera óptima el tiempo dado por el juzgado para manifestarse.

En el contexto tecnológico, actualmente es popular el uso de aplicaciones web, ya que éstas al tener navegadores web como clientes ligeros permiten mantener independencia del sistema operativo, con disponibilidad de acceso 24 horas al día y desde cualquier lugar que se disponga de conexión a internet, manteniendo toda la información centralizada y favoreciendo la gestión de usuarios. Adicionalmente, el uso de aplicaciones móviles proporciona portabilidad y disponibilidad en cualquier lugar, con la posibilidad de hacer uso en la aplicación de los dispositivos integrados al teléfono o tableta, tales como cámara o receptor GPS entre otros. Además, actualmente existe una gran aceptación y difusión de los dispositivos móviles, teniendo en cuenta que en los últimos años el uso de dispositivos móviles se ha incrementado a un ritmo bastante acelerado, y en Colombia la difusión de dispositivos móviles “inteligentes” ha sido particularmente alta, ya que la activación de éstos creció 278% en el año 2012, mismo año en el que el país fue el de mayor tasa de adopción de dispositivos móviles “inteligentes” en el mundo (Farago, 2013).

(21)
(22)

22

4. ALCANCES Y LIMITACIONES

4.1 ALCANCES

Se desarrollará un prototipo de software que contemple un componente web y un componente para dispositivos móviles, los cuales para efectos del presente proyecto se realizarán usando el lenguaje de programación Java en su plataforma Enterprise Edition 6 para el componente web, y el sistema operativo Android para el componente móvil; realizando la integración entre los dos sistemas por medio de Servicios Web.

El prototipo permitirá registrar, consultar y archivar procesos judiciales, además de capturar, transmitir y organizar la información de los actos procesales; haciendo uso de los siguientes módulos:

• Registro de procesos judiciales: Éste permitirá registrar de manera web nuevos procesos judiciales en el sistema.

• Consulta de procesos judiciales: Éste permitirá consultar de manera web los procesos judiciales registrados en el sistema y sus respectivos actos asociados.

• Captura y envió de información de actos procesales: Éste permitirá registrar con el uso de dispositivos móviles la información de los actos procesales junto con las fotografías de los mismos, y enviarla al servidor web a través de internet.

• Recepción y organización de información de actos procesales: Éste permitirá recibir en el servidor web la información de los actos procesales enviados desde el dispositivo móvil, para organizarla y persistirla para que pueda ser consultada por la aplicación web.

(23)

23 4.2 LIMITACIONES

El prototipo contempla únicamente la gestión para procesos judiciales del tipo civil, ya que cada tipo de proceso judicial tiene principios, etapas y procedimientos completamente diferentes, y en los otros tipos de procesos se pueden incluir actos procesales no documentados en papel.

Por facilidad de investigación, la distribución de juzgados civiles que se tuvo en cuenta dentro del prototipo fue limitada a la ciudad de Bogotá.

Debido a que se trata de un prototipo, el sistema no implementa un sistema de creación y gestión de usuarios, sino que asume la existencia de un abogado y un dependiente judicial.

Para facilitar el desarrollo del sistema y evitar el costo de licencias, el proyecto se realizó haciendo uso exclusivo de herramientas de software libre.

Dentro de las pruebas realizadas al prototipo no se contempla la ejecución de pruebas de desempeño, y por lo tanto no es posible conocer el desempeño del sistema en ambiente de producción.

(24)

24

5. MARCO CONCEPTUAL

Dentro del contexto judicial es necesario entender los conceptos relacionados con los procesos judiciales civiles y su respectivo el procedimiento dentro del cual se encuentran las etapas procesales y los actos procesales.

5.1 PROCESO JUDICIAL

El proceso judicial se puede definir como “la serie de actos que se desenvuelven progresivamente, con el objeto de resolver, mediante un juicio de autoridad, el conflicto sometido a su decisión” (Couture, 1958), por lo tanto en un proceso siempre existen dos partes entre quienes se presenta el litigio y un funcionario judicial que imparte el juicio de autoridad.

5.1.1 Clasificación de los procesos judiciales

En el estado colombiano la rama judicial es la encargada de administrar justicia, facultad que se lleva a la práctica mediante diferentes órganos del poder público y diferentes jurisdicciones. Cada funcionario de la rama judicial tiene su jurisdicción, siendo:

• Jurisdicción ordinaria: Los jueces que hacen parte de esta jurisdicción hacen uso del derecho para dirimir conflictos y decidir controversias entre particulares.

• Jurisdicción contenciosa administrativa: Los jueces de esta jurisdicción solucionan conflictos que se presentan entre particulares y el Estado, o conflictos que se presentan al interior del estado mismo.

• Jurisdicción constitucional: Es la rama de la justicia que vela por la supremacía de la Constitución Política Colombiana y el estado de derecho en todo el territorio nacional. Todos los jueces de la nación pertenecen a esta rama en primera instancia.

• Jurisdicción disciplinaria: Es la encargada de administrar el presupuesto, la disciplina y la organización de la rama judicial colombiana.

• Jurisdicción especial: La presente rama judicial reconoce la jurisdicción especial indígena y autoriza a la ley para la creación y administración de jueces de paz al interior del territorio nacional, encargados de resolver conflictos a partir de un criterio de equidad y con la característica especial de ser elegidos por votación popular.

(25)

25

sirven como medio para dar cumplimiento al proceso, teniendo un ordenamiento positivo (código) por cada especialidad que lo regula en su totalidad. Para el caso de la jurisdicción ordinaria, ésta se divide en:

• Civil determinados asuntos, siendo los factores determinantes para la competencia de un proceso civil los siguientes:

• Factor objetivo: Atiende a la naturaleza o la cuantía del asunto

• Factor subjetivo: Tiene en cuenta los sujetos intervinientes en el proceso. • Factor funcional: Tiene en cuenta la instancia del proceso.

• Factor territorial: Tiene en cuenta el lugar del territorio nacional donde deba tramitarse el proceso.

• Factor de conexión: Relacionado con las pretensiones del demandante.

Dentro de los aspectos del factor objetivo la naturaleza se relaciona de manera directa con la pretensión, refiriéndose al interés de las partes en relación con la decisión que se tome en la sentencia; se divide en:

• Contencioso: cuando existe controversia, litigio o intereses encontrados y es iniciado por una demanda.

• Voluntario: no existe litigio sino interesados que reclaman para sí el reconocimiento de un derecho, este tipo de proceso inicia con una solicitud.

El aspecto de la cuantía se determina por la suma de todas las pretensiones a la fecha de la presentación de la demanda, clasificándose en:

• Mínima cuantía • Menor cuantía • Mayor cuantía

(26)

26

son Civiles municipales, Del circuito, Tribunales, Corte suprema de justicia y, recientemente, jueces de pequeñas causas.

5.1.2 Secuencia de los procesos judiciales civiles

Como parte del derecho al debido proceso, los procesos judiciales deben seguir una secuencia definida dependiendo de la clasificación ya que cada tipo de proceso tiene una secuencia diferente definida en su código de procedimiento; para el caso de los procesos judiciales de tipo civil la secuencia puede ser definida teniendo en cuenta los diferentes artículos del código de procedimiento civil colombiano (CPC) como se puede apreciar en la Imagen 1, en cada etapa pueden existir múltiples actuaciones, siendo las etapas marcadas en las que hay manifestaciones de respuesta por las partes implicadas en el proceso y que tienen un plazo para realizarse.

Imagen 1: Etapas de un proceso civil colombiano

Fuente: Elaboración propia

1. Presentación de la demanda: un proceso judicial en general se inicia cuando una de las partes presenta una demanda ante la autoridad jurisdiccional.

(27)

27

3. Notificación de la demanda: Es el momento procesal en el cual se le da a conocer a la parte demandada u otros sujetos procesales la existencia de la demanda. (CPC Art 87, Art 315, Art 318, Art. 320 y Art. 330).

4. Contestación de la demanda: Es un pronunciamiento expreso que hace la parte demandada sobre las pretensiones y los hechos de la demanda, con indicación de los que se admiten y los que se niegan y dado el caso podrá adjuntar las pruebas pertinentes. (CPC Art 92).

5. Etapa Probatoria Es el momento procesal en el cual el juez toma a consideración todo el material probatorio que le ha sido suministrado por las partes en el proceso, ya que toda decisión judicial debe fundamentarse en las pruebas que han sido allegadas de manera regular y oportuna. (CPC Art 174).

6. Resolución: Se da cuando el juez, después de haber tenido en cuenta las pruebas y demás actos procesales que se hayan llevado a cabo dentro del proceso, toma una decisión respecto a las pretensiones de la demanda.(CPC Art. 304, Art 331)

7. Ejecución de la sentencia: Es el momento en el cual se hacen efectivas las disposiciones que están contenidas dentro de la sentencia, la forma de hacerlas efectivas se reglamentan en los artículos 334 y 335 del código de procedimiento civil colombiano. (CPC Art. 334, Art. 335)

(28)

28 5.2 ACTOS PROCESALES

Los actos procesales cobran vital importancia en los procesos judiciales ya que éstos son los que definen el proceso como tal, entendiendo el acto procesal como un “acto jurídico emanado de las partes, de los agentes de la jurisdicción o aun de los terceros ligados al proceso, susceptible de crear, modificar o extinguir efectos procesales” (Couture, 1958). funcionario jurisdiccional y las partes, aunque se pueden incluir otras personas que también participan, tales como los auxiliares de la justicia y ciertos órganos de pruebas como por ejemplo los testigos.

• Objeto: lo constituye el aspecto sobre el cual versa y la finalidad que con él persigue el sujeto que lo realiza.

• Actividad: también denominada formas procesales, consistente en las circunstancias de lugar, tiempo y modo en que deben llevarse a cabo los actos procesales.

• Tiempo: se refiere al lapso dentro del cual el acto procesal debe realizarse, de acuerdo con la ley procesal se le denomina términos. Los términos cumplen una función primordial en el proceso, porque demarcan las diferentes etapas que él comprende, tanto para su iniciación como para su terminación. Los términos se cuentan a partir del día siguiente a la notificación de la providencia que lo fija, o a partir del día siguiente de la última notificación.

5.2.1 Tipos de actos procesales

En términos generales se pueden distinguir dos tipos de actos procesales, los actos emanados de las partes y los actos emanados del personal jurisdiccional (jueces). (Universidad Católica de Colombia, 2010)

5.2.1.1 Actos emanados de las partes.

Las partes pueden realizar manifestaciones de disposición sobre los derechos e intereses que se discuten en el proceso, siempre y cuando sean titulares del mismo. Las manifestaciones pueden ser:

(29)

29

concreto sobre el objeto del litigio, o interlocutoria cuando se pide una determinada actuación en la tramitación del procedimiento, como por ejemplo la citación de un testigo.

• Alegatos. Son manifestaciones que realizan las partes para suministrar al órgano judicial los elementos fácticos y jurídicos en que fundan su posición en el proceso y que estiman deben ser tenido en cuenta por el mencionado órgano al resolver el mismo.

• Aportes de pruebas. son manifestaciones que sirven como soporte del elemento factico, aportando al órgano judicial elementos de convicción que apoyan su posición en el proceso, y con base en los que consideran que el órgano judicial debe fijar los hechos que fundamenten su posterior resolución.

5.2.1.2 Actos emanados del personal jurisdiccional

El personal jurisdiccional (Jueces y Magistrados), realiza manifestaciones resolutorias, encaminadas a resolver el objeto del litigio y las incidencias procesales que plantee su tramitación; las manifestaciones pueden ser:

• Providencias. También conocidas como sentencias, son manifestaciones mediante las cuales un juez o magistrado expresa la voluntad que el estado toma sobre el objeto del proceso, es decir, las pretensiones formuladas por el demandante y la conducta que debería adoptar el demandado frente a ellas.

(30)

30

6. MARCO TECNOLÓGICO

Dentro del contexto tecnológico se hace necesario aclarar los conceptos relacionados con las tecnologías utilizadas en el desarrollo del proyecto, tales como las relacionadas con aplicaciones web, aplicaciones móviles, servicios web y bases de datos.

6.1 APLICACIONES WEB

Se denomina aplicación web a aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de internet o de una intranet mediante un navegador web. Las aplicaciones web usan el navegador web como cliente ligero, su ejecución es independiente del sistema operativo, y pueden ser actualizadas sin distribuir e instalar software a todos los usuarios.

Una aplicación web es estructurada como una aplicación de varias capas, siendo la estructura más común la de tres capas; en la cual la presentación es la primera capa, que es accesible a través de un navegador web, la segunda capa corresponde a la lógica de la aplicación, ejecutada por un motor capaz de usar alguna tecnología web dinámica, y la tercera capa es la de almacenamiento que comúnmente implica una base de datos. En esta estructura el navegador web manda peticiones a la capa intermedia que ofrece servicios valiéndose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario, permitiendo que el usuario acceda a los datos de modo interactivo. (Wikipedia)

6.1.1 Java Enterprise Edition (Java EE)

Es una plataforma de computación que hace parte de la plataforma Java, la cual proporciona APIs y un ambiente de ejecución para desarrollar y ejecutar software de aplicaciones empresariales, las cuales normalmente se desarrollan de manera modular y con el uso de N capas distribuidas ejecutándose sobre servidores de aplicaciones.

(31)

31 6.1.1.1 Arquitectura.

El conjunto de especificaciones de Java EE son implementadas en diferentes contenedores, los cuales son ambientes de ejecución que proveen ciertos servicios a los componentes que almacenan, dentro de estos servicios se encuentran la gestión de ciclo de vida, la inyección de dependencia, manejo de concurrencia, entre otros. Los componentes usan contratos bien definidos para comunicarse con la infraestructura de Java EE y con los otros componentes. Los componentes se empaquetan en una forma estándar para ser desplegados. Java EE es una extensión de la plataforma Java SE, lo cual significa que las APIs de Java SE pueden ser usadas en los componentes Java EE.

La Imagen 2 muestra las relaciones lógicas entre los contenedores. Las flechas representan los protocolos usados por los contenedores para acceder a otros.

Imagen 2: Contenedores Java EE estándar

Fuente: (Goncalvez, 2013) 6.1.1.2 Componentes.

El ambiente de ejecución de Java EE define cuatro tipos de componentes que una implementación puede soportar:

(32)

32

• Aplicaciones. Son programas que son ejecutados sobre un cliente, típicamente son interfaces graficas de usuario o programas de procesamiento por lotes que tienen acceso a todas las funciones de la capa media de Java EE.

• Aplicaciones web. Son aplicaciones ejecutadas en un contenedor web y responden a solicitudes HTTP de clientes web. Tienen soporte para servicios web tipo SOAP y RESTful, las aplicaciones web también pueden contener EJBs Lite.

• Aplicaciones empresariales. Son aplicaciones ejecutadas en un contenedor EJB. Los EJBs son componentes gestionados por el contenedor para procesar lógica de negocio transaccional. Pueden ser accedidos tanto local como remotamente a través de los protocolos RMI o HTTP para servicios directorio de nombres. Los contenedores ocultan la complejidad técnica e incrementa la portabilidad. Dependiendo de la clase de aplicación que se quiera construir, se escogen los contenedores a usarse, por ejemplo si se va a construir una aplicación web, se desarrolla una capa JSF con una capa EJB Lite y se despliegan en un contenedor web. Pero en el caso de construir aplicaciones web que invoquen la capa de negocios remotamente y use llamadas y mensajes asíncronos, se requiere el uso de los contenedores web y EJB. Java tiene cuatro contenedores diferentes:

• Contenedor de aplicaciones cliente. Incluye un conjunto de clases Java, librerías, y otros archivos requeridos para brindar inyección, gestión de seguridad, y servicio de nombrado a las aplicaciones Java SE. El contenedor se comunica con el contenedor EJB usando el protocolo RMI y con el contenedor web usando HTTP (para servicios web).

• Contenedor web. Provee los servicios necesarios para el manejo y ejecución de componentes web como servlets, EJB Lite, JSPs, filtros, paginas JSF y servicios web. Es responsable por la instanciación, inicialización e invocación de servlets y el soporte de los protocolos HTTP y HTTPS. Es el contenedor usado para alimentar las páginas web a los navegadores cliente.

(33)

33

tales como transacción, seguridad, concurrencia, distribución, servicio de nombrado, y la posibilidad de ser invocados asincrónicamente.

• Contenedor de applets. Es proporcionado por los navegadores web para ejecutar los componentes applet. El contenedor proporciona un ambiente seguro para las aplicaciones applet, usando un modelo de seguridad que previene que cualquier código descargado a maquinas locales puedan acceder a recursos del sistema, como procesos y archivos.

6.1.1.4 Servicios.

Los contenedores proveen servicios a sus componentes desplegados, en la Imagen 3 se pueden apreciar los servicios proporcionados por cada contenedor. Los siguientes son los servicios ofrecidos por la plataforma Java EE:

• JTA (Java Transaction API). Este servicio ofrece un API de transacción base de datos de manera estándar independientemente del motor de base de datos utilizado.

• Validación (Bean Validation). Proporciona declaración de restricciones y facilidades de validación a nivel de clases y métodos.

• JMS (Java Message Service). Este permite a los componentes comunicarse de manera asincrónica a través de mensajes, soporta mensajes punto a punto (P2P) siguiendo el modelo publicador-subscriptor.

• JNDI (Java Naming and Directory Interface). Esta API, incluida en Java SE, es usada para acceder a sistemas de nombres y directorio. Las aplicaciones usan esta API para asociar nombres a objetos y luego para encontrar esos objetos en un directorio. Se pueden buscar fuentes de datos, fabricas JMS, EJBs, y otros recursos.

• JavaMail. API que proporciona la habilidad de implementar el envío de correos electrónicos.

• JAF (JavaBeans Activation Framework). API incluida en Java SE, proporciona un fremework para el manejo de datos en diferentes tipos MIME, esta es usada por JavaMail.

• Procesamiento XML. Debido a que muchos de los componentes de Java EE pueden ser desplegados con descriptores de despliegue XML, y las aplicaciones a menudo tienen que manipular documentos XML, el API para procesamiento XML (JAXP) proporciona soporte para convertir documentos con APIs SAX y DOM, así como XSLT.

(34)

34

• JCA (Java EE Connector Architecture). Los conectores permiten acceder a los sistemas de información empresariales desde un componente Java EE, esos sistemas pueden ser bases de datos, programas ERPs o computadores centrales.

• Servicios de seguridad. El servicio de autenticación y autorización de Java (JAAS) permite a los servicios autenticarse y forzar controles de acceso a los usuarios. El contrato de proveedor de servicio de autorización para contenedores (JACC) define un contrato entre un servidor de aplicaciones y un proveedor de servicio de autorización, permitiendo que los proveedores de servicios de autorización sean enlazados dentro de un producto Java servicios web RESTful (JAX-RS) proporciona soporte para servicios web que usen el estilo REST.

• Inyección de Dependencias. Permite que los recursos como fuentes de datos, unidades de persistencia y EJBs, entre otros, puedan ser inyectados en componentes.

• Gestión. Java EE define APIs para el manejo de contendedores y servidores usando un “Enterprise Bean”. El API para manejo de extensiones (JMX) también es usada para proporcionar algún suporte de gestión.

(35)

35

Imagen 3: Servicios proporcionados por los contenedores Java EE

Fuente: (Goncalvez, 2013)

6.1.1.5 Protocolos de Red.

Como se puede apreciar en la Imagen 3 los componentes desplegados en contenedores pueden ser invocados a través de diferentes protocolos, los protocolos soportados por Java EE son los siguientes:

• HTTP. Es el protocolo web, el cual es el más usado en las aplicaciones modernas. El API del lado de cliente es definida por el paquete java.net en Java SE, y el API del lado del servidor HTTP es definida por servlets, interfaces JSP y JSF, así como servicios web SOAP y RESTful.

• HTTPS. Es una combinación de HTTP y el protocolo SSL

(36)

36 6.1.1.6 Empaquetado

Para que un componente sea desplegado en un contendedor, primero debe ser empaquetado en un archivo de formato estándar. Java SE define los archivos .jar (Java Archive) los cuales son usados para agregar muchos archivos (como clases Java, descriptores de despliegue, recursos o librerías externas) dentro de un archivo comprimido. Como se puede ver en la Imagen 4 Java EE define diferentes tipos de módulos que tienen su propio formato de empaquetado basado en el formato jar.

Imagen 4: Archivos en contenedores Java EE

Fuente: (Goncalvez, 2013)

Los tipos de módulos son:

• Módulo de aplicación cliente: Contiene clases java y otros recursos empaquetados en un archivo jar, este jar puede ser ejecutado en un ambiente Java SE o en un contenedor de aplicación cliente. Como cualquier otro formato de archivo, los archivos jar contienen un directorio opcional META-INF para la meta información que describe el archivo.

• Módulo EJB: Contiene uno o más beans de sesión o beans orientados a mensajes empaquetados en un archivo jar. Este puede ser desplegados solo en un contenedor de EJBs.

(37)

37

artefactos son empaquetados en un archivo jar con la extensión .war (Web Archive).

(38)

38 6.2 APLICACIONES MÓVILES

Una aplicación móvil es una aplicación informática para ser ejecutada en teléfonos inteligentes, tabletas y otros dispositivos móviles. Por lo general se encuentran disponibles a través de plataformas de distribución, operadas por las compañías propietarias de los distintos sistemas operativos móviles. (Wikipedia)

Las aplicaciones para dispositivos móviles se han popularizado debido a la portabilidad y versatilidad de los dispositivos, ya que comúnmente cuentan con una gran cantidad de dispositivos integrados como cámara, receptor gps y acelerómetro, entre otros, además de poder conectarse a internet. Aunque durante el desarrollo de aplicaciones móviles se debe tener en cuenta las limitaciones de estos dispositivos, ya que dispositivos móviles funcionan con batería y comúnmente tienen procesadores menos poderosos que los computadores personales.

6.2.1 Android.

Android es un sistema operativo de código libre, basado en una versión modificada de Linux, diseñado principalmente para dispositivos móviles con pantalla táctil como smartphones y tablets, aunque tiene interfaces especializadas para su ejecución en televisores, automóviles y relojes de muñeca que puedan soportarlo. En los últimos años Android ha sido el sistema operativo para dispositivos móviles más usado en el mundo2 y tiene más de un millón de aplicaciones publicadas en su plataforma oficial de distribución de aplicaciones, llamada Google Play.

El desarrollo de aplicaciones en Android tiene como su principal ventaja que una aplicación puede ser ejecutada en muchos dispositivos diferentes, siempre y cuando estos tengan el sistema operativo.

6.2.1.1 Características.

Dado que Android es de código abierto y disponible de manera libre a los fabricantes para modificaciones, no hay configuraciones fijas de hardware o software. Aunque Android por sí mismo soporta las siguientes características:

• Almacenamiento: el almacenamiento interno de datos de las aplicaciones puede lograrse con el uso de SQLite, una base de datos relacional ligera disponible de manera nativa.

• Conectividad: soporta los tipos de redes y conexiones GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, y WiMAX.

• Envío de mensajes: soporta SMS y MMS.

(39)

39

• Navegación Web: basada en el motor de navegación web de código abierto WebKit, junto con el motor de JavaScript.

• Soporte multimedia: incluye soporte para diferentes formatos multimedia como: H.263, H.264 (en un contenedor MP4 o 3GP), MPEG-4 SP, AMR, AMR-WB (en un contenedor 3GP), AAC, HE-AAC (en un contenedor MP4 o 3GP), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF y BMP.

• Soporte de hardware: sensor de acelerómetro, cámara, compas digital, sensor de proximidad y GPS.

• Multi-tarea: soporta aplicaciones con tareas concurrentes. • Multi-touch: soporta pantallas multitouch.

• Soporte para flash: a partir de la versión 2.3 de android cuenta soporte para la ejecución de flash 10.1 cuatro capas principales, como se puede ver en la Imagen 5. Las secciones son:

• Kernel Linux: esta es el kernel en el cual Android está basado, esta capa contiene todos los controladores de bajo nivel del dispositivo para los distintos componentes de hardware de un dispositivo Android.

• Librerías: Esta contiene todo el código que proporciona las características principales de un sistema operativo Android.

• Ambiente de ejecución: en la misma capa de las librerías, el ambiente de ejecución proporciona un conjunto de librerías del núcleo que permite a los desarrolladores escribir aplicaciones Android usando el lenguaje de programación Java. El ambiente de ejecución también incluye la máquina virtual Dalvik, la cual permite a cada aplicación ejecutarse en su propio proceso, con su propia instancia de la máquina virtual, ya que las aplicaciones de Android son compiladas como ejecutables. Dalvik es una máquina virtual especializada diseñada específicamente para Android y optimizada para dispositivos móviles con memoria y procesamiento limitados.

• Framework de aplicaciones: Expone varias de las capacidades del sistema operativo Android a los desarrolladores de aplicación de tal manera que ellos puedan hacer uso de ellas en sus aplicaciones.

(40)

40

Imagen 5: Secciones y capas principales del sistema operativo Android

Fuente: (Lee, 2012)

6.2.1.3 Versiones de Android.

El sistema operativo Android tuvo su primera versión comercial en Septiembre del 2008 con la versión 1.0, y a partir de esto ha venido haciendo actualizaciones al sistema operativo en las cuales agrega alguna funcionalidad o cambia características. Las versiones de Android con sus características más relevantes son las siguientes:

• Android 1.6, Donut: Con funciones de red necesarias para realizar navegación web

• Android 2.0, Eclair: Organización de las aplicaciones y widgets a través de múltiples pantallas y carpetas.

• Android 2.2, Froyo: Se incluye entrada de texto y ejecución de acciones a través de entrada de voz.

• Android 2.3, Gingerbread: Soporte para acciones basadas en sensores de la pantalla del dispositivo, tales como como deslizar e inclinar.

• Android 3.0, Honeycomb: Versión optimizada para ser ejecutada en tablets. • Android 4.0, Ice Cream Sandwich: A partir de esta versión se redefine el

(41)

41

• Android 4.1, Jelly Bean: Se optimiza la velocidad y se mejoran las gráficas, además de la inclusión del asistente personal inteligente Google Now.

• Android 4.4, KitKat: Se refina el diseño y se cambian algunas características internas del sistema buscando la optimización del rendimiento.

La Imagen 6 muestra el porcentaje de uso de las diferentes versiones a nivel mundial.

Imagen 6: Porcentaje de uso de las diferentes versiones de Android

Datos recolectados durante un periodo de 7 días, terminando el 06 de abril de 2015 (Versiones con menos de 0.1% no son mostradas)

Fuente: (Google Inc, 2015)

(42)

42 6.3 SERVICIOS WEB

Un servicio Web es un sistema de software diseñado para soportar la interacción interoperable entre diferentes dispositivos sobre una red y por lo tanto son consumidos programáticamente. Suelen ser APIs Web que pueden ser accedidas dentro de una red, comúnmente Internet, y son ejecutados en el sistema que los aloja teniendo una interfaz descrita en un formato entendible por los diferentes sistemas (Kalin, 2009). De manera que un servicio web es un sistema de software distribuido cuyos componentes pueden ser desplegados y ejecutados en dispositivos fisicamente diferentes, en su forma mas basica consta de un servidor del servicio y un cliente que accede a el, como puede verse en la Imagen 7.

Imagen 7: Servicio web y uno de sus clientes

Fuente: (Kalin, 2013)

Los Servicios Web pueden ser clasificados en dos grupos, los servicios basados en el protocolo SOAP y los servicios que usan el estilo de arquitectura REST. SOAP es un dialecto XML con una gramática que especifica la estructura que debe tener un documento, en los servicios web basados en SOAP la comunicación se realiza a través de mensajes de este tipo. Los servicios web que usan el estilo REST hacen uso del protocolo HTTP y sus diferentes métodos de petición para realizar el paso de mensajes, que pueden ser de diferentes tipos. En los dos casos tanto el servicio como sus clientes pueden ser escritos en cualquier lenguaje, que tenga las librerías adecuadas para su manejo, haciendo posible que exista independencia de los lenguajes para la comunicación de diferentes sistemas, gracias al uso de estándares abiertos para manejar las diferencias entre los lenguajes. Las características más importantes de los servicios web son:

• Infraestructura abierta: Los Servicios Web son desarrollados usando estándares y protocolos abiertos e independientes de los fabricantes y los lenguajes, estándares como HTTP, XML y JSON, los cuales son ampliamente usados y bien comprendidos en la web.

(43)

43

proporcionan las librerías y herramientas adecuadas para soportar el uso de Servicios Web.

• Diseño Modular: Los Servicios Web están destinados a tener un diseño modular, de tal manera que nuevos servicios puedan ser generados a través de la integración de servicios existentes.

6.3.1 Servicios Web SOAP

Se puede considerar SOAP como un protocolo de comunicación entre aplicaciones que establece el formato para el envío de mensajes entre una red usando el protocolo HTTP, es independiente de las plataformas y lenguajes de programación, está basado en XML y tiene una gramática que especifica la estructura que debe tener un documento para ser clasificado como SOAP.

(44)

44

punto específico; el tercer atributo es usado para definir los tipos de dato usados en el documento. El siguiente es un ejemplo del elemento

<soap:Header>

<m:GetPrice xmlns:m="http://www.w3schools.com/prices"> <m:Item>Apples</m:Item>

</m:GetPrice> </soap:Body>

• Fallas (fault): Elemento que contiene los errores y la información de estado para un mensaje SOAP. Si este elemento está presente, debe aparecer como un elemento hijo del elemento cuerpo y solo puede aparecer una vez en todo el mensaje. Tiene los siguientes sub-elementos:

o <faultcode>: código para identificar la falla. o <faultstring>: explicación entendible de la falla.

o <faultactor>: información acerca de quien causó que la falla ocurriera.

o <detail>: mantiene la información del error específica de la aplicación relacionada en el elemento cuerpo.

El resultado del uso de servicios web SOAP es un sistema para realizar llamadas remotas a métodos entre diferentes plataformas por medio del uso de acciones y URIs. Los servicios basados en SOAP casi siempre tienen una única URI y muchas acciones diferentes, de manera que cada servicio SOAP crea nuevas acciones, usando el método POST en caso de que se haga el paso de mensajes sobre HTTP.

Las reglas de sintaxis definidas por SOAP para los mensajes son las siguientes:

• Debe ser codificado usando XML.

• Debe usar el espacio de nombres de la envoltura SOAP. • Debe usar el espacio de nombres de la codificación SOAP.

(45)

45

En los servicios web basados en SOAP tanto el cliente como el que expone el servicio deben usar librerías que “entiendan” el protocolo para realizar la comunicación, tal como se aprecia en la Imagen 8.

Imagen 8: Interacción de un servicio web SOAP

Fuente: (Kalin, 2013)

6.3.2 Servicios Web REST

REST es un estilo de arquitectura de software para sistemas hipermedia distribuidos, ósea sistemas en los cuales texto, gráficos, audio y otros tipos de multimedia son almacenados a través de una red e interconectados a través de hipervínculos. Los servicios web tipo REST (o RESTful) se basan en este este tipo de arquitectura y tienen una interacción como se puede apreciar en Imagen 9.

Imagen 9: Interacción de un servicio web tipo REST

Fuente: (Kalin, 2013)

El estilo REST se basa en los diferentes principios:

6.3.2.1 Principio de los recursos direccionables.

La abstracción clave de la información y datos en REST es un recurso, y cada recurso debe ser direccionable por medio de una URI (Uniform Resource Identifier) de manera que se tenga una sintaxis universal para identificar los recursos ya que existe un formato estándar para las URI.

(46)

46

En este formato el esquema es el protocolo usado en la comunicación que usualmente es http o https; el servidor es un DNS o una dirección ip y el puerto es un número que puede ser opcional, estos dos representan la maquina donde está localizado del recurso sobre una red; la ruta es un conjunto de segmentos de texto delimitados por el carácter “/” y representan la localización del recurso en la maquina donde se encuentra; la cadena de búsqueda es una lista opcional de parámetros representados por el par nombre/valor, cada par está delimitado con el carácter “&”; la última parte de una URI es un fragmento el cual es usado para apuntar a una parte especifica en el documento que se solicita.

6.3.2.2 Principio de Interfaz uniforme y restringida.

Se hace uso de un conjunto de operaciones bien definidas que se aplican a todos los recursos de información. Se usan las operaciones definidas por HTTP en donde las más importantes son POST, GET, PUT y DELETE; de esta manera no es necesario tener un parámetro que especifique la acción en la URI. Cada uno de los métodos de http tiene un propósito específico que puede usarse como una acción.

• GET: Es una operación de solo lectura, es usada para consultar al servidor por información específica. Esta operación no cambia el estado del servidor y el resultado siempre es el mismo.

• PUT: Solicita que el servidor guardar el cuerpo del mensaje enviado con la solicitud bajo la localización proporcionada en el mensaje http. Esto es usualmente modelado como una acción de inserción o actualización.

• DELETE: Es usado para eliminar recursos.

• POST: Es la única operación de http que cambia el resultado de respuesta y cambia el estado del servidor cada vez que es invocado. Cada invocación puede modificar el servicio en una forma única. Se puede enviar o no información con la solicitud y se puede o no recibir información de respuesta.

• HEAD: Funciona de la misma manera que GET pero con la excepción de que en lugar de retornar un cuerpo de respuesta, retorna un código de respuesta y cualquier encabezado asociado con la solicitud.

(47)

47 6.3.2.3 Orientado a la representación.

Cada servicio es direccionable a través de una URI específica y las representaciones son intercambiadas entre el cliente y el servicio. Con una operación GET el cliente recibe una representación del estado actual de un recurso, con las operaciones PUT y POST se realiza un paso de una representación de un recurso al servidor. Las representaciones pueden ser XML, JSON, HTML o cualquier otro formato de hipermedia, por lo tanto http usa el identificador de tipo de contenido (Content-Type) para comunicar al cliente o servidor el formato usado; algunos tipos de contenido son:

text/plain text/html

application/xml text/html

Es posible que un cliente y el servidor negocien los formatos de mensaje que serán intercambiados entre ellos, con el encabezado de aceptación un cliente puede listar sus formatos de respuesta preferidos.

6.3.2.4 Comunicación sin estado.

Cada mensaje HTTP contiene toda la información necesaria para comprender la petición, de manera que ni el cliente ni el servidor necesitan recordar ningún estado de las comunicaciones entre mensajes y por lo tanto no se guarda ninguna sesión del cliente en el servidor. El servidor solamente guarda y gestiona el estado de los recursos que expone.

6.3.2.5 Hipermedia como motor de estado de aplicación.

(48)

48 6.4 BASE DE DATOS

6.4.1 Mapeo objeto-relacional

El mapeo objeto-relacional es una técnica de programación para convertir datos entre el sistema de tipos utilizado en los lenguajes de programación orientados a objetos y la utilización de una base de datos relacional como motor de persistencia. Esto posibilita el uso de las características propias de la orientación a objetos y la independencia del motor de base de datos utilizado para el sistema.

En esta técnica, para lograr la interacción con la base de datos, se crea una base de datos virtual orientada a objetos sobre la base de datos relacional como se ilustra en la Imagen 10.

Imagen 10: interacción en técnica de mapeo objeto-relacional

Fuente: (Visual Paradigm, 2015)

Algunas de las ventajas del uso de esta técnica son la centralización de la lógica de negocio del sistema y la independencia del motor de base de datos, teniendo la posibilidad de cambiarlo durante el desarrollo sin mayores complicaciones.

Como desventaja tiene que las aplicaciones funcionan un poco más lento con el uso de esta técnica debido a que todas las consultas que se hagan sobre la base de datos, el sistema debe primero transformarlas al lenguaje propio de la herramienta, luego leer los objetos y por ultimo crear los objetos

Referencias

Documento similar

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

dente: algunas decían que doña Leonor, &#34;con muy grand rescelo e miedo que avía del rey don Pedro que nueva- mente regnaba, e de la reyna doña María, su madre del dicho rey,

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:

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

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

entorno algoritmo.

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas