Implementación de una base de datos para el control de acceso al LICIT utilizando un servidor y una aplicación Android.

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

Download "Implementación de una base de datos para el control de acceso al LICIT utilizando un servidor y una aplicación Android."

Transcripción

1 Universidad de Costa Rica Facultad de Ingeniería Escuela de Ingeniería Eléctrica Implementación de una base de datos para el control de acceso al LICIT utilizando un servidor y una aplicación Android. Por: Christian Alpízar Castro Ciudad Universitaria Rodrigo Facio, Costa Rica Diciembre de 2014

2

3 Implementación de una base de datos para el control de acceso al LICIT utilizando un servidor y una aplicación Android. Por: Christian Alpízar Castro IE-0499 Proyecto eléctrico Aprobado por el Tribunal: Ing. Julián Gutiérrez Monge Profesor guía Ing. Gustavo Núñez Segura Profesor lector Ing. Marco Villalta Fallas Profesor lector

4

5 Resumen El presente informe corresponde a la elaboración de un sistema para el control de accesos al Laboratorio de Investigación en Circuitos Integrados (LICIT), que se implementó un servidor de la Escuela de Ingeniería Eléctrica, se creó una base de datos para el almacenamiento de la información y una aplicación para dispositivos con sistema operativo Android. El servidor que se utilizó posee como Sistema Operativo Debian, el cual es un sistema Linux de uso libre, también cuenta con los programas Apache como Servidor Web, SSH utilizado para el acceso remoto y MySQL para implementación de la base de datos. La base de datos se hizo por medio de MySQL y fue creada desde cero, la estructura de la misma es especificada en el documento, así como los comandos para su creación. La aplicación Android tiene la finalidad de que los usuarios puedan tener acceso a la información de manera práctica y a traves sus dispositivos móviles que normalmente llevan consigo. En el desarrollo del documento se comenta un poco de la estructura y su funcionamiento. El sistema diseñado se implementó de manera que se pueda adecuar a algunas otras necesidades y que se pueda extender a los demás laboratorios de la Escuela, sin necesidad de realizar muchos cambios. Además todo se realizó utilizando Software Libre, por lo que su implementación en algún sistema no representa costos. v

6

7 Índice general Índice de figuras Índice de cuadros Nomenclatura viii viii xi 1 Introducción Alcance del proyecto Objetivos Metodología Marco Teórico Servidores Bases de Datos Android Diseño Base de Datos Comunicación con el Sistema de Acceso Aplicación para dispositivos Android Conclusiones y recomendaciones Conclusiones Recomendaciones Bibliografía 57 A Comandos para la creación y uso de la Base de Datos 59 A.1 Creación de la base de datos A.2 Creación de tablas A.3 Consultas a la Base de Datos B Programa de Comunicación accesslistener.py 63 C Archivos Aplicación 67 C.1 AndroidManifest.xml C.2 Vistas vii

8 Índice de figuras 2.1 Elementos para la representación gráfica de un Modelo Entidad- Relación. Basado en Moreno (2010) Ejemplo de diagrama de un Modelo Entidad-Relación. Basado en Moreno (2010) Ejemplo de diagrama de un Modelo Relacional. (Moreno, 2010) Estructura de la Arquitectura de Android. (Vico, 2011) Estructura de la Base de Datos acceso_licit Diagrama de Flujo del programa de comunicación accesslistener Icono para la apertura de la aplicación Inicio de Sesión en la aplicación Actividad principal de la aplicación Actividad para agregar usuario Actividad para editar usuarios Actividad para ver registros de acceso Actividad para eliminar usuarios Actividad para eliminar registros Índice de cuadros 2.1 Versiones de Debian.(Debian, 2014) Tipos de Datos SQL. (Moreno, 2011) Sinónimos de Tipos de Datos SQL. (Moreno, 2011) Comandos DLL. (Moreno, 2011) Comandos DML. (Moreno, 2011) Cláusulas SQL. (Moreno, 2011) Operadores Lógicos SQL. (Moreno, 2011) Operadores de Comparación SQL. (Moreno, 2011) Funciones de Agregado SQL. (Moreno, 2011) Predicados SQL. (Moreno, 2011) Componetes principales de una aplicación Android.(Tutorialspoint, 2014) viii

9 2.12 Componetes adicionales de una aplicación Android.(Tutorialspoint, 2014) Descripción de la tabla user Descripción de la tabla rol Contenido inicial de la tabla rol Descripción de la tabla permission Contenido inicial de la tabla permission Descripción de la tabla permissionrol Descripción de la tabla accessregister ix

10

11 Nomenclatura AAC AMR API ASF BD BSD CAD DBMS DDL DML DFSG FIR FPGA FTP GIF GLSL Codificación Avanzada de Audio, Advanced Audio Coding Compresión Multi-tasa adaptativo, Adaptive Multi-Rate Interfaz de programación de aplicaciones, Application Programming Interface Fundación de Software Apache, Apache Software Foundation Base de Datos Distribución de Software Berkeley, Berkeley Software Distribution Diseño Asistido por Computadora, Computer-Aided Design Sistemas de Administración de Base de Datos, Data Base Management System Lenguaje de Definición de Datos Lenguaje de Manipulación de Datos Directrices de Software Libre de Debian Respuesta finita al impulso, Finite Impulse Response Arreglo de Compuertas Programable, Field Programmable Gate Array Protocolo de Transferencia de Archivos, File Transfer Protocol Formato de Intercambio de Gráficos, Graphics Interchange Format Lenguaje de Sombreado de OpenGL, OpenGL Shading Language xi

12 HTTP IDE IETF JDK JPG LAN LICIT OpenGL PNG RCP RFC SCP SFTP SGI SGL SQL SSH SSL TCP UCR Protocolo de Trasferencia de Hipertexto, Hypertext Transfer Protocol Entorno de Desarrollo Integrado, Integrated Development Environment Fuerza de Trabajo en Ingeniería de Internet, Internet Engineering Task Force Kit de Desarrollo Java, Java Development Kit Grupo Conjunto de Expertos en Fotografía, Joint Photographic Experts Group Red de Área Local Laboratorio de Investigación en Circuitos Integrados Biblioteca Abierta de Gráficos, Open Graphics Library Gráficos de Red Portátiles, Portable Network Graphics Copia Remota, Remote Copy Solicitud de Comentarios, Request For Comments Copia Segura, Secure Copy Protocolo de Transferencia de Archivos SSH, SSH File Transfer Protocol Silicon Graphics Inc. Biblioteca Escalable de Gráficos, Scalable Graphics Library Lenguaje de Consulta Estructurado, Structured Query Language Secure Shell Capa de Enlace Seguro, Secure Sockets Layer Protocolo de Control de Transmisión, Transmission Control Protocol Universidad de Costa Rica xii

13 VoIP WAN WWW Voz sobre Protocolo de Internet, Voice over Internet Protocol Redes de Área Amplia World Wide Web xiii

14

15 1 Introducción Este proyecto surge con el fin de controlar el acceso de los estudiantes al Laboratorio de Investigación en Circuitos Integrados (LICIT) de la Escuela de Ingeniería Eléctrica, y llevar los registros de las personas que ingresan al mismo. El Laboratorio de Investigación en Circuitos Integrados (LICIT), forma parte de los laboratorios de docencia de la Escuela de Ingeniería Eléctrica de la Universidad de Costa Rica. Dentro de algunos de los proyectos que se han realizado en este laboratorio es posible mencionar: la implementación en un FPGA del microprocesador académico CPUCR, de un filtro digital del tipo FIR y un probador estructural de microprocesadores. Este último fue realizado bajo el auspicio de la corporación Intel, para el laboratorio de análisis de fallas del departamento de Calidad y Confiabilidad de esta empresa. (Rodríguez, 2004) Como menciona Rodríguez (2004) el LICIT fue creado para fomentar el diseño de circuitos integrados, además es utilizado para impartir clases a los estudiantes de dicha Unidad Académica, el desarrollo de proyectos de estudiantes y profesores, así como para la realización de prácticas de algunos de los cursos impartidos en ella. Por esta razón el laboratorio cuenta con gran cantidad de equipo dentro de los que se pueden mencionas computadoras y equipo electrónico para pruebas y proyectos, de ahí la importancia de mejorar la seguridad de acceso a este laboratorio, ya que considerando que la universidad es una lugar público, podría haber acceso a esto por personas ajenas a la institución, pudiendo culminar en el hurto de alguna de estas cosas. La seguridad es un áspecto que en los últimos años se debe ir reforzando, como bien lo menciona Ávalos (2013) en su artículo, es necesario reforzar la seguridad en la Universidad de Costa Rica con mecanismos como personal y tecnología en esta área, ya que la sede Rodrigo Facio es también zona de paso para cientos de personas y vehículos que no tienen ninguna relación con la Universidad. Según datos mencionados en el artículo al 2013 la UCR enfrenta de dos a tres hechos delictivos por semana, en promedio. 1.1 Alcance del proyecto El proyecto consiste en un servidor ubicado en la Escuela de Ingeniería Eléctrica, este va a contener los programas necesarios para la comunicación con el sistema de acceso instalado en la entrada del Laboratorio de Investigación en Circuitos Integrados (LICIT), con el cual los usuarios van a introducir la 1

16 2 1 Introducción información de acceso, que va a constar de una identificación de usuario y una contraseña. El servidor contará con una base de datos con la información de estos usuarios y los permisos de cada uno de ellos para el ingreso. Al recibir la información del sistema de acceso a través de la red, se va a realizar la verificación de cada uno de los usuarios, una vez efectuada la verificación del usuario se mandará la respuesta al sistema con la aprobación de entrada o bien la revocación de la entrada del usuario, además se guardará el registro de los accesos que se efectúen. Finalmente para la consulta de los accesos y administración del sistema y la base de datos, se va a implementar una aplicación móvil para el sistema operativo Android, con la cual se puede consultar los registros de acceso, crear nuevos usuarios, realizar modificaciones a los usuarios existentes, entre otros. 1.2 Objetivos El principal objetivo planteado para el desarrollo de este Proyecto es el siguiente: Objetivo general Elaborar un sistema que permita el control y registro de acceso de los usuarios al LICIT, por medio de un servidor y aplicación Android, comunicándose con el sistema de acceso. Objetivos específicos Además para el desarrollo de este proyecto se establecieron los siguientes objetivos: Implementar un servidor que reciba la información del sistema de acceso al LICIT, realice la verificación de los usuarios, y envíe la confirmación de acceso, utilizando Linux y un servidor de la Escuela de Ingeniería Eléctrica. Crear una base de datos de usuarios y permisos de acceso de los mismos, para la autentificación y registro de accesos, utilizando MySQL. Desarrollar un sistema de comunicación bidireccional con el sistema de acceso instalado en el laboratorio, para efectuar la autentificación del acceso, por medio de WiFi. Desarrollar una aplicación en el sistema Android, con el fin de administrar y mostrar los registros de los accesos al LICIT.

17 1.3. Metodología Metodología El desarrollo del trabajo incluyó los siguientes pasos y procedimientos, listados en secuencia: 1. Revisión de referencias bibliográficas para respaldar el trabajo realizado, además de la definición de algunos aspectos para confección del proyecto tales como lenguajes de programación y protocolos utilizados en la implementación. 2. Utilización de un servidor de la escuela y la configuración del mismo para que cumpla con las condiciones mínimas necesarias para el soporte y funcionamiento de la aplicación del sistema. 3. Elaboración de la base de datos, instalar el sistema gestor de base de datos, definir la estructura de la base de datos y la información que se necesita ingresar en dicha base de datos. 4. Definición de la manera de comunicación con sistema de acceso, esto se realiza en conjunto con la implementación del sistema de acceso al laboratorio, definición del protocolo de comunicación y los comandos de comunicación entra ambos sistemas. 5. Desarrollo y aplicación de pruebas de comunicación del sistema de acceso con el servidor que contiene la base de datos, para corroborar que se la comunicación el correcta y permite la interoperabilidad de los sistemas. 6. Implementación y desarrollo de la aplicación móvil para sistema Android, definición de las características, funcionalidades y partes que constan la aplicación, así como su puesta en funcionamiento y la distribución de la aplicación para que los usuarios realicen su descarga. 7. Verificación del adecuado funcionamiento de la aplicación Android por medio de pruebas controladas y en distintos dispositivos.

18

19 2 Marco Teórico 2.1 Servidores Un servidor es un computador conectado a una red de transmisión de datos que da servicio compartido a múltiples usuarios. Los servidores pueden tener gran cantidad de funcionalidades dentro de los que existen cabe mencionar servidores de aplicaciones, en los que los usuarios a través de una red pueden ejecutar programas, acceder a la información de bases de datos, acceder a correo electrónico, y demás; servidores que preferentemente ofrecen recursos específicos a compartir a través de la red. (Cátedra, 2004) Como se menciona en Álvarez (2012), existen varios tipos de servidores clasificados según sus funcionalidades: Servidor de Aplicaciones: se trata de un dispositivo de software que proporciona servicios de aplicación a las computadoras cliente. Servidor de Audio/Video: estos añaden capacidades multimedia a los sitios web permitiéndoles mostrar contenido multimedia en forma de flujo continuo (streaming) desde el servidor sin interrupciones, con la posibilidad de escuchar música o ver videos, esto sin necesidad de ser descargados previamente. Servidor de Chat: estos permiten intercambiar información a una gran cantidad de usuarios ofreciendo la posibilidad de llevar a cabo discusiones en tiempo real. Servidor de fax: almacena, envía, recibe, enruta y realiza otras funciones necesarias para la transmisión, la recepción y la distribución apropiadas de los fax. Servidores FTP: Uno de los servicios más antiguos de Internet, por su nombre ne inglés File Transfer Protocol. Su función es permitir el intercambio de datos entre diferentes servidores/ordenadores. Servidores Web: Básicamente, un servidor web es un programa diseñado para alojar y transferir páginas web. Estos servidores se mantienen a la espera de peticiones que le hará un cliente o un usuario en internet. 5

20 6 2 Marco Teórico Servidores de Noticias: Los servidores de noticias actúan como fuente de distribución y entrega para los millares de grupos de noticias públicos actualmente accesibles a través de la red de noticias USENET. Servidores Proxy: realiza un algunas funciones a nombre de otros clientes en la red para aumentar el funcionamiento de ciertas operaciones, un ejemplo de ello sería depositar documentos u otros datos que se soliciten muy frecuentemente. También proporciona servicios de seguridad, es decir, incluye un cortafuegos. Permite administrar el acceso a internet en una red de computadoras permitiendo o negando el acceso a diferentes sitios Web. Servidor de archivos: Estos son típicos de la red local de una empresa, aunque algunos los hay muchísimo más potentes que pueden albergar gran cantidad de archivo. Es el encargado de almacenar varios tipos de archivos y distribuirlos a otros clientes en la red. Servidor de Base de Datos: provee servicios de base de datos a otros programas u otras computadoras, como es definido por el modelo clienteservidor. O bien hace referencia a aquellas computadoras dedicadas a ejecutar esos programas, prestando el servicio. Servidores de Listas: estos ofrecen una mejor manera de manejar listas de correo electrónico, bien sean discusiones interactivas abiertas al público o listas unidireccionales de anuncios, boletines de noticias o publicidad. Servidor de impresiones: controla una o más impresoras y acepta trabajos de impresión de otros clientes de la red, poniendo en cola los trabajos de impresión y realizando la mayoría o todas las otras funciones que en un sitio de trabajo se realizaría para lograr una tarea de impresión si la impresora fuera conectada directamente con el puerto de impresora del sitio de trabajo. Servidor de correo: almacena, envía, recibe, enruta y realiza otras operaciones relacionadas con para los clientes de la red. Estos mueven y almacenan el correo electrónico a través de las redes corporativas, ya sea vía una Red de Área Local (LAN), Redes de Área Ámplia (WAN) o a través de Internet. Servidor de la telefonía: realiza funciones relacionadas con la telefonía, como es la de contestador automático, realizando las funciones de un sistema interactivo para la respuesta de la voz, almacenando los mensajes de voz, encaminando las llamadas y controlando también la red o el Internet,unejmplodeestetipodeaplicaciones es lavozsobreip(voip).

21 2.1. Servidores 7 Servidor de Reserva: tiene el software de reserva de la red instalado y tiene cantidades grandes de almacenamiento de la red en discos duros u otras formas del almacenamiento disponibles para que se utilice con el fin de asegurarse de que la pérdida de un servidor principal no afecte a la red. Esta técnica también es denominada clustering. Sin embargo, de acuerdo al rol que asumen dentro de una red se dividen en: Servidor dedicado: son aquellos que le dedican toda su potencia a administrar los recursos de la red, es decir, a atender las solicitudes de procesamiento de los clientes. Servidor no dedicado: son aquellos que no dedican toda su potencia a los clientes, sino también pueden jugar el rol de estaciones de trabajo al procesar solicitudes de un usuario local. Servidores Telnet: Un servidor telnet permite a los usuarios entrar en un ordenador huésped y realizar tareas como si estuviera trabajando directamente en ese ordenador. Debian Debian es una organización formada totalmente por voluntarios dedicada a desarrollar software libre y promocionar los ideales de la comunidad del software libre. El Proyecto Debian inició en 1993, cuando por iniciativa de Ian Murdock se unieron varios desarrolladores de software para contribuir a una distribución completamente coherente basada en el núcleo Linux, que en ese entonces era relativamente nuevo. Ese grupo relativamente pequeño de entusiastas, al principio patrocinados por la Free Software Foundation e influenciados por la filosofía GNU, ha ido creciendo a lo largo de los años hasta convertirse en una organización de alrededor de 951 desarrolladores Debian.(Debian, 2013) Es un grupo mundial de voluntarios que se esfuerzan por producir una distribución de sistema operativo que este compuesta enteramente de software libre. El producto principal del proyecto a la fecha es la distribución de software Debian GNU/Linux, la cual incluye a Linux como núcleo del sistema operativo, así como miles de aplicaciones pre-empaquetadas. Se soportan en mayor o menor medida distintos tipos de procesadores, dentro de los que se pueden mencionar el procesador Intel i386 y superiores, y los procesadores Alpha, ARM, Intel IA-64, Motorola 68k, MIPS, PA-RISC, PowerPC, Sparc (y UltraSparc), IBM S/390 y Hitachi SuperH.(Garbee et al., 2004) Debian es software libre, lo que quiere decir que es de libre adquisición por los usuarios y que se tiene libre acceso al software como tal, lo que implica que el usuario puede realizar cambios en este según sean sus necesidades. Con el interés de comunicar su filosofía y atraer desarrolladores que crean en los principios que Debian protege, el Proyecto Debian ha publicado un

22 8 2 Marco Teórico número de documentos que contienen nuestros valores y sirven como guías de lo que significa ser un desarrollador Debian: Contrato Social de Debian: es una afirmación del compromiso de Debian con la comunidad de Software Libre. Cualquiera que esté de acuerdo en acogerse al Contrato Social puede convertirse en desarrollador. Cualquier desarrollador puede introducir software nuevo en Debian, siempre que éste cumpla nuestro criterio de software libre, y cumpla con los estándares de calidad. Directrices de Software Libre de Debian (DFSG): es un informe claro y conciso de los criterios de Debian sobre el software libre. La DFSG es de gran influencia en el movimiento del software libre, y proporciona las bases de la Definición de Open Source. Normas de Debian: son una especificación extensiva de los estándares de calidad del Proyecto Debian. La combinación de la filosofía y metodología de Debian, las herramientas GNU, el núcleo Linux, y otro software libre importante, forman una distribución de software única llamada Debian GNU/Linux. Esta distribución está formada por un gran número de paquetes. Cada paquete en la distribución contiene ejecutables, scripts, documentación e información de configuración, y tiene un encargado, quien es el principal responsable de mantener el paquete actualizado, hacer un seguimiento de los informes de fallo y comunicarse con los autores principales del programa empaquetado. La gran base de usuarios en conjunto con el sistema de seguimiento de fallos aseguran que los problemas se encuentren y resuelvan rápidamente. La atención que pone Debian a los detalles permite producir una distribución de alta calidad, estable y escalable. La instalación puede configurarse fácilmente para cumplir diversas funciones, desde cortafuegos reducidos al mínimo, a estaciones de trabajo científicas o servidores de red de alto rendimiento. Debian es especialmente popular entre los usuarios avanzados debido a su excelencia técnica y compromiso con las necesidades y expectativas de la comunidad Linux. Debian también introdujo muchas características a Linux, que ahora son comunes. Por ejemplo, Debian fue la primera distribución de Linux en incluir un sistema de gestión de paquetes para permitir una fácil instalación y desinstalación del software. Además, también fue la primera que podía actualizarse sin necesidad de una reinstalación. Debian es el líder en el desarrollo de Linux. Su proceso de desarrollo es un claro ejemplo de lo bien que puede funcionar el modelo Open Source, que

23 2.1. Servidores 9 quiere decir Fuente Abierta; incluso para tareas tan complejas como construir y mantener todo un sistema operativo. Lo que más distingue a Debian de otras distribuciones GNU/Linux es su sistema de gestión de paquetes. Estas herramientas otorgan al administrador de un sistema Debian total control sobre los paquetes instalados, operativo incluyendo la capacidad de instalar un sólo paquete o actualizar el sistema por completo. También es posible proteger paquetes individualmente de forma que no se actualicen. Incluso puede indicar al sistema de gestión de paquetes qué programas se han compilado por el usuario y qué dependencias cumplen. Para proteger su sistema contra caballos de Troya y otros programas malévolos, los servidores de Debian verifican que los paquetes provienen de sus auténticos encargados. Los desarrolladores de Debian también ponen gran cuidado en configurarlos de forma segura. Se publican parches muy rápidamente si se descubren problemas de seguridad en los paquetes ya distribuidos. Con el sencillo sistema de actualización de Debian, se puede descargar e instalar parches de seguridad automáticamente a través de Internet. Debian desde sus inicios ha tenido varias versiones que ha ido evolucionando con el paso de los años, como dato curioso los nombres que se le han dado a cada una de las versiones de este Sistema Operativo son nombres pertenecientes a personajes de la película Toy Story. En la tabla 2.1 se puede observar el listado de las versiones, con su respectivo nombre y fecha de publicación como versión estable. GNU/Linux Linux es un sistema operativo: un conjunto de programas que le permiten interactuar con su ordenador y ejecutar otros programas. Un sistema operativo consiste en varios programas fundamentales que necesita el ordenador para poder comunicar y recibir instrucciones de los usuarios; tales como leer y escribir datos en el disco duro, cintas, e impresoras; controlar el uso de la memoria; y ejecutar otros programas. La parte más importante de un sistema operativo es el núcleo. En un sistema GNU/Linux, Linux es el núcleo. El resto del sistema consiste en otros programas, muchos de los cuales fueron escritos por o para el proyecto GNU. Dado que el núcleo de Linux en sí mismo no forma un sistema operativo funcional, se prefiere utilizar el término GNU/Linux para referirse a los sistemas que la mayor parte de las personas llaman de manera informal Linux. Linux está modelado como un sistema operativo tipo Unix. Desde sus comienzos, Linux se diseñó para que fuera un sistema multi tarea y multi usuario. Estos hechos son suficientes para diferenciar a Linux de otros sistemas operativos más conocidos. Nadie es dueño de Linux, a diferencia de otros

24 10 2 Marco Teórico Cuadro 2.1: Versiones de Debian.(Debian, 2014) Versión Nombre Publicación (Estable) 1.1 Buzz 17 de junio de Rex 12 de diciembre de Bo 2 de junio de Hamm 24 de julio de Slink 9 de marzo de Potato 15 de agosto de Woody 19 de julio de Sarge 6 de junio de Etch 8 de abril de Lenny 14 de febrero de Squeeze 6 de febrero de Wheezy 4 de mayo de Wheezy 12 julio de Jessie en Prueba sistemas operativos. Gran parte de su desarrollo lo realizan voluntarios de forma altruista. En 1984 comenzó el desarrollo de lo que más tarde sería GNU/Linux cuando la Free Software Foundation (Fundación de Software Libre) comenzó a desarrollar un sistema operativo libre de tipo Unix, llamado GNU. El proyecto GNU ha desarrollado un conjunto de herramientas de software libre para ser utilizados por Unix y sistemas operativos tipo Unix como Linux. Estas herramientas permiten a los usuarios desarrollar tareas que van desde las más comunes(como copiar o eliminar ficheros del sistema) a las más complejas (como escribir y compilar programas o hacer edición sofisticada en una gran variedad de formatos de documento). El núcleo Linux apareció por primera vez en 1991, cuando un estudiante de informática finlandés llamado Linus Torvalds anunció en el grupo de noticias de USENET comp.os.minix, una primera versión de un núcleo de reemplazo para Minix. Los usuarios de Linux tienen una gran libertad al elegir sus programas. Por ejemplo, un usuario de Linux puede elegir entre gran cantidad de distintos intérpretes de línea de órdenes y entre distintos entornos de escritorio. Es menos probable que un sistema Linux se colapse, además tiene mejor capacidad para ejecutar múltiples programas al mismo tiempo y es más seguro que muchos otros sistemas operativos. Debido a estas ventajas, Linux es el

25 2.1. Servidores 11 sistema operativo que ha experimentado mayor crecimiento en el mercado de los servidores. Últimamente, Linux está empezando a ser popular entre los usuarios domésticos y en empresas.(debian, 2013) SSH Secure Shell SSH Secure Shell es un conjunto de estándares y protocolo de red que permite establecer una comunicación a través de un canal seguro entre un cliente local y un servidor remoto. Utiliza una clave pública cifrada para autenticar el servidor remoto y, opcionalmente, permite al servidor remoto autenticar al usuario. SSH provee confidencialidad e integridad en la transferencia de los datos utilizando criptografía y MAC(Message Authentication Codes o Códigos de Autenticación de Mensaje). De modo predeterminado, escucha peticiones a través del puerto 22 por TCP. (Barrios, 2008) SFTP SFTP (SSH File Transfer Protocol) es un protocolo que provee funcionalidad de transferencia y manipulación de ficheros a través de un flujo confiable de datos. Comúnmente se utiliza con SSH para proveer a éste de transferencia segura de ficheros. (Barrios, 2008) SCP SCP (Secure Copy o Copia Segura) es una protcolo seguro para transferir ficheros entre un anfitrión local y otro remoto, a través de SSH. Básicamente, es idéntico a RCP (Remote Copy, o Copia Remota), con la diferencia de que los datos son cifrados durante la transferencia para evitar la extracción potencial de información a través de programas de captura de las tramas de red (packet sniffers). SCP solo implementa la transferencia de ficheros, pues la autenticación requerida es realizada a través de SSH. (Barrios, 2008) OpenSSH OpenSSH (Open Secure Shell) es una alternativa de código abierto, con licencia BSD, hacia la implementación propietaria y de código cerrado SSH creada por Tatu Ylönen. OpenSSH es un proyecto creado por el equipo de desarrollo de OpenBSD y actualmente dirigido por Theo de Raadt. Se considera es más segura que su contraparte propietaria debido a la constante auditoría que se realiza sobre el código fuente por parte de una gran comunidad de desarrolladores, una ventaja que brinda al tratarse de un proyecto de fuente abierta. OpenSSH incluye servicio y clientes para los protocolos SSH, SFTP y SCP. (Barrios, 2008)

26 12 2 Marco Teórico OpenSSH soporta los protocolos 1 y 2 de SSH, de manera predeterminada utiliza el protocolo 2 únicamente, sin embargo es posible cambiar esta configuración. Ambos protolocos poseen métodos de autenticación similares, pero el 2 proporciona mecanismos de confidencialidad adicionales, es decir, el tráfico es encriptado usando AES, 3DES, Blowfish, CAST128 o Arcfour, y mecanismos de integridad como: hmac-md5, hmac-sha1, hmac-sha2-256, hmac-sha2-512, umac-64, umac-128, hmac-ripemd160; el protocolo 1 no posee un mecanismo robusto para garantizar la integridad de la conexión. (Campbell et al., 2014) Los métodos de autenticación disponibles son: autenticación basada en GSSAPI, auntenticación basada en host, autenticación por llave pública (public key authentication), challenge-response authentication y autenticación por contraseña. (Campbell et al., 2014) Apache Apache es un programa enfocado a la implementación de un servidor HTTP robusto, de grado comercial, de código abierto y licenciamiento libre; es desarrollado y mantenido por una comunidad de desarrolladores auspiciada por Apache Software Foundation. (ASF, 2011) Según menciona Barrios (2008) ha desempeñado un papel muy importante en el crecimiento de la red mundial, y continua siendo el servidor HTTP más utilizado, siendo además el servidor de facto contra el cual se realizan las pruebas comparativas y de desempeño para otros productos competidores. ASF (2014) destaca varias características de este programa que lo hacen convertirse en el programa líder a nivel mundial para la implementación de servidores web, dentro de las que se pueden mencionar las siquientes: Es un servidor web potente, flexible y compatible con HTTP/1.1. Implementa los últimos protocolos, incluyendo HTTP/1.1 (RFC2616). Es altamente configurable y extendible mediante programas de terceros. Puede personalizarse escribiendo módulos usando el módulo Apache API. Provee el código fuente completo y una licencia sin restricciones. Se puede ejecutar en Windows 2000, Netware 5.x y superior, OS / 2, y la mayoría de las versiones de Unix, así como varios otros sistemas operativos. Se está desarrollando de manera permanente y activa.

27 2.2. Bases de Datos 13 Fomenta la retroalimentación de los usuarios a través de nuevas ideas, informes de errores y parches. Implementa muchas características solicitadas con frecuencia por los usuarios. HTTP HTTP (Hypertext Transfer Protocol o Protocolo de Trasferencia de Hipertexto), es el método utilizado para transferir o transportar información en la Red Mundial (www,world Wide Web). Su propósito original fue el proveer una forma de publicar y recuperar documentos HTML. El desarrollo del protocolo fue coordinado por World Wide Web Consortium y la IETF (Internet Engineering Task Force o Fuerza de Trabajo en Ingeniería de Internet), culminando con la publicación de varios RFC (Request For Comments), de entre los que destaca el RFC 2616, mismo que define la versión 1.1 del protocolo, que es el utilizado hoy en día. (Barrios, 2008) HTTP es un protocolo de solicitud y respuesta a través de TCP, entre agentes de usuario como Navegadores, motores de índice y otras herramientas, y servidores, regularmente utilizando el puerto 80. Entre la comunicación entre éstos puede intervenir como servidores Intermediarios (Proxies), puertas de enlace y túneles. (Barrios, 2008) 2.2 Bases de Datos Basado en la definición de Base de Datos (BD) dada en Ullman y Widom (1999) y Silberschatz et al. (2006), se puede definir que una Base de Datos es una colección de datos que se encuentran interrelacionados, que existen durante un periodo largo de tiempo y son administrados por un conjunto de programas denominados Sistemas de Administración de Base de Datos DBMS, siglas por su nombre en inglés Data Base Management System. El principal objetivo de una Base de Datos es proporcionar un entorno que sea tanto práctico como eficiente de usar en la recuperación y el almacenamiento de la información. Para comprender el funcionamiento y estructura de una BD es necesario conocer los siguientes conceptos: Ejemplares(instancias): Colección de información almacenada en la BD en un momento determinado. Esquema: El diseño completo de la BD. Son raramente modificados. Por ejemplo el esquema Estudiante puede estar conformado de la siguiente manera: carnet, nombre y carrera.

28 14 2 Marco Teórico Conjunto de esquemas: Estructura de la Base de Datos. Dato: Hechos, números, letras o símbolos en bruto que la computadora procesa en información significativa. Información: Interpretación o significado de los datos. Archivo: Conjunto de datos de computadora relacionados al que se le ha dado un nombre. Registro: Fila de una BD compuesta de campos, una colección de registros forma la BD. Campo: Unidad de datos mas pequeña en una BD. Debido a la complejidad que pueden tener se dividen en los siguiente niveles de abstracción: 1. Nivel Físico: Es el nivel más bajo de abstracción, este describe cómo se almacenan realmente los datos. 2. Nivel Lógico: Describe qué datos se almacenan en la BD y que relación existe entre ellos. 3. Nivel de Vistas: Describe solo una parte de BD. El sistema puede proporcionar muchas vistas para la misma BD. En Moreno (2010) se mencionan los siguientes modelos de datos: Modelo Entidad-Relación Este modelo es basado en una percepción del mundo real. Consta de una colección de objetos básicos, llamados entidades, y de relaciones entre estos objetos. Se definen de la siguiente manera: Entidad: Cosa u objeto en el mundo real que es distinguible de otros objetos. Relación: Asociación entre varias entidades. Loselmentosqueseutilizanparalaconfección delosdiagramasdeunmodelo Entidad-Relación, se pueden observar en la figura 2.1, en donde los rectangulos representan entidades, los rombos representan relaciones, las elipses representan atributos y las líneas representan las conexiones entre ellos. En la figura 2.2 se puede observar un diagrama de un modelo Entidad Relación.

29 2.2. Bases de Datos 15 Figura 2.1: Elementos para la representación gráfica de un Modelo Entidad-Relación. Basado en Moreno (2010) Entidad Rectangular Entidad Débil Relaciónes Atributos Atributo llave o clave Conector id_cliente calle_cliente num_cuenta Cliente Impositor Cuenta nom_cliente ciudad_cliente saldo Figura 2.2: Ejemplo de diagrama de un Modelo Entidad-Relación. Basado en Moreno (2010) Modelo Relacional El Modelo Relacional utiliza una colección de tablas para representar tanto los datos como las relaciones entre esos datos. Cada una de las tablas posee varias columnas, y cada columna tiene un nombre único. Lenjuages de Bases de Datos La bases de datos poseen dos lenguajes: Lenguaje de Definición de Datos (LDD o DDL): Se usa para especificar el esquema de la BD. Después de compilar el resultado es un conjunto de tablas que se almacenan en un diccionario de datos. Diccionario de Datos: Archivo que contienen metadatos, es decir datos acerca de los datos. Lenguaje de manipulación de Datos (LMD o DML): En este lenguaje, manipulación de datos quiere decir: recuperación, inserción, borrado y modificación de información. Permite a los usuarios acceder a manipular los datos organizados. Existen dos tipos: Procedimentales: El usuario especifica qué datos y cómo obtenerlos, por ejemplo C y Pascal.

30 16 2 Marco Teórico Figura 2.3: Ejemplo de diagrama de un Modelo Relacional. (Moreno, 2010) No procedimentales: Usuario especifica qué datos, sin especificar cómo obtenerlos, por ejemplo SQL (Lenguaje Estructurado de Consultas). Normalización de Base de Datos La normalización consiste en eliminar la redundancia e inconsistencias de dependendia en el diseño de las tablas de una Base de Datos. Para llevar a cabo la normalización de una base de Datos, se debe hacer uso de las cinco formas normales de una base de datos, la cuales determinan las características que debe ir adquiriendo la BD, estas formas normales se listan a continuación: 1. Primera forma normal: en esta se deben eliminar los grupos repetitivos de las tablas. Identificar cada grupo de datos relacionados con una clave primaria. 2. Segunda forma normal: se deben crear tablas separadas para aquellos grupos de datos que se aplican a varios registros, además hay relacionar éstas tablas mediante una clave externa. 3. Tercera forma normal: hay que eliminar aquellos campos que no dependan de la clave primaria.

31 2.2. Bases de Datos Cuarta forma normal: en las BD pueden existir relaciones varios a varios, en estas relaciones las entidades independientes no pueden ser almacenadas en la misma tabla. 5. Quinta forma normal: la tabla original que se tuvo que dividir en la cuarta forma normal debe ser reconstruida desde las tablas resultantes en las cuales ha sido particionada. Lenguaje de Consulta Estructurado (SQL) El lenguaje de Consulta Estructurado, SQL por su nombre en inglés Structured Query Language, está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. Tipos de Datos Los tipos de datos SQL se clasifican en 13 tipos de datos primarios, estos se pueden observar en la tabla 2.2 y de varios sinónimos válidos reconocidos por dichos tipos de datos, los cuales se observan el la tabla 2.3. Comandos Existen dos tipos de comandos SQL: 1. DLL: permiten crear y definir nuevas bases de datos, campos e índices. Se pueden observar en la tabla DML: permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Como se muestra en la tabla 2.5. En ocasiones cuando se ejecutan diversos comando en SQL, ya sea DLL o DML, se requiere restringir los datos que se requieren seleccionar o bien modificar, según sea el caso; para realizar esto existen las cláusulas, que son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular, éstas se pueden observar en la tabla 2.6. Adicional a las cláusulas se pueden utilizar operadores lógicos, operadores de comparación y funciones de agregado, estos se pueden observar en las tablas 2.7, 2.8 y 2.9 respectivamente. Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros. Asimismo existen los predicados, estos se incluyen entre la cláusula y el primer nombre del campo a recuperar, con el fin de limitar lo valores que se

32 18 2 Marco Teórico Cuadro 2.2: Tipos de Datos SQL. (Moreno, 2011) Tipo de Datos Longitud Descripción BINARY 1 byte Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario. BIT 1 byte Valores Si/No ó True/False BYTE 1 byte Un valor entero entre 0 y 255. COUNTER 4 bytes Un número incrementado automáticamente (de tipo Long) Un entero escalable entre CURRENCY 8 bytes ,5808 y ,5807. DATETIME 8 bytes Un valor de fecha u hora entre los años 100 y SINGLE 4 bytes Un valor en punto flotante de precisión simple con un rango de 3, a 1, para valores negativos, 1, a 3, paravalores positivos, y 0. DOUBLE 8 bytes Un valor en punto flotante de doble precisión con un rango de 1, a 4, para valores negativos, 4, a 1, para valores positivos, y 0. SHORT 2 bytes Un entero corto entre y LONG 4 bytes Un entero largo entre y LONGTEXT 1 byte por De cero a un máximo de 1,2 gigabytes. carácter LONGBINARY Según necesite TEXT se 1 byte por carácter De cero 1 gigabyte. Utilizado para objetos OLE. De cero a 255 caracteres.

33 2.2. Bases de Datos 19 Cuadro 2.3: Sinónimos de Tipos de Datos SQL. (Moreno, 2011) Tipo de Dato Sinónimos BINARY VARBINARY BIT BOOLEAN, LOGICAL, LOGICAL1, YESNO BYTE INTEGER1 COUNTER AUTOINCREMENT CURRENCY MONEY DATETIME DATE, TIME, TIMESTAMP SINGLE FLOAT4, IEEESINGLE, REAL DOUBLE FLOAT, FLOAT8, IEEEDOUBLE, NUMBER, NU- MERIC SHORT INTEGER2, SMALLINT LONG INT, INTEGER, INTEGER4 LONGBINARY GENERAL, OLEOBJECT LONGTEXT LONGCHAR, MEMO, NOTE TEXT ALPHANUMERIC, CHAR - CHARACTER, STRING - VARCHAR VARIANT (No Admitido) VALUE Cuadro 2.4: Comandos DLL. (Moreno, 2011) Comando CREATE DROP ALTER Descripción Utilizado para crear nuevas tablas, campos e índices Empleado para eliminar tablas e índices Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos. Cuadro 2.5: Comandos DML. (Moreno, 2011) Comando SELECT INSERT UPDATE DELETE Descripción Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado Utilizado para cargar lotes de datos en la base de datos en una única operación. Utilizado para modificar los valores de los campos y registros especificados Utilizado para eliminar registros de una tabla de una base de datos

34 20 2 Marco Teórico Cuadro 2.6: Cláusulas SQL. (Moreno, 2011) Cláusula FROM WHERE GROUP BY HAVING ORDER BY Descripción Utilizada para especificar la tabla de la cual se van a seleccionar los registros Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar Utilizada para separar los registros seleccionados en grupos específicos Utilizada para expresar la condición que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico Cuadro 2.7: Operadores Lógicos SQL. (Moreno, 2011) Operador AND OR NOT Uso Es el y lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas. Es el o lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. Negación lógica. Devuelve el valor contrario de la expresión. quieren mostrar de la sonsulta según la necesidad y se pueden observar en la tabla En el caso que una sentencia SQL de selección incluya todas las posibles cláusulas, el orden de ejecución de las mismas es el siguiente: 1. Cláusula FROM 2. Cláusula WHERE 3. Cláusula GROUP BY 4. Cláusula HAVING 5. Cláusula SELECT 6. Cláusula ORDER BY

35 2.2. Bases de Datos 21 Cuadro 2.8: Operadores de Comparación SQL. (Moreno, 2011) Operador Uso < Menor que > Mayor que <> Distinto de <= Menor o igual que >= Mayor o igual que = Igual que BETWEEN Utilizado para especificar un intervalo de valores. LIKE Utilizado en la comparación de un modelo In Utilizado para especificar registros de una base de datos Función Cuadro 2.9: Funciones de Agregado SQL. (Moreno, 2011) Descripción AVG Utilizada para calcular el promedio de los valores de un campo determinado COUNT Utilizada para devolver el número de registros de la selección SUM Utilizada para devolver la suma de todos los valores de un campo determinado MAX Utilizada para devolver el valor más alto de un campo especificado MIN Utilizada para devolver el valor más bajo de un campo especificado Predicado Cuadro 2.10: Predicados SQL. (Moreno, 2011) Descripción ALL Devuelve todos los campos de la tabla. TOP Devuelve un determinado número de registros de la tabla. DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente. DISTINCTROW Omitelosregistrosduplicadosbasándoseenlatotalidad del registro y no sólo en los campos seleccionados.

36 22 2 Marco Teórico MySQL MySQL es el Sistema de Administración de Bases de Datos (DBMS) de fuente abierta más popular, es desarrollado, distribuido y soportado por Oracle Corporation. Provee la facilidad para agregar, accesar y procesar la información almacenada en la base de datos de las computadoras. (Oracle, 2014) Fuente Abierta significa que es posible para cualquier persona utilizar y modificar el programa, además es posible descargarlo a través de Internet y utilizarlo sin necesidad de pago alguno. Si se desea es posible estudiar el código y adecuarlo a las necesidades. Utiliza la licencia GPL para definir los permisos de uso de la aplicación. (Oracle, 2014) Es una base de datos que utiliza el modelo relacional, que almacena los datos en tablas separadas en vez de almacenar toda la información en un gran grupo de información en la memoria de almacenamiento. La estructura de la BD está organizada en archivos físicos optimizados para que su consulta sea rápida. El modelo lógico con objetos tales como: bases de datos, tablas, vistas, filas y columnas ofrece un ambiente de programación flexible. (Oracle, 2014) Las relaciones entre los diferentes campos de datos es administrado por el usuario y puede ser: uno a uno, uno a varios, único, requerido u opcional, o como puntero que direcciona a diferentes tablas. La BD utiliza reglas que se deben cumplir, de manera que asociado a un correcto diseño garantice que las aplicaciones nunca observen incoherencia, duplicidad, datos huérfanos, obsoletos o pérdida de datos. (Oracle, 2014) MySQL utiliza el Lenguaje de Consultas Estructurado (SQL), como se mencionón anteriormente es el estándar de uso más común para accesar a las bases de datos. Dependiendo del ambiente de programación se pueden utilizar directamente las sentencias de SQL, sentencias SQL incluidas en código escrito en otro lenguaje, o utilizar un API específica del lenguaje que oculta la sintaxis SQL. (Oracle, 2014) Este programa es muy rápido, confiable, escalable y fácil de usar. Puede correr confortablemente incluso en una computadora de escritorio o portatil, en conjunto con las demás aplicaciones con solo iniciarla y requiere poca o nula supervisión. (Oracle, 2014) Fue creado originalemente para manejar bases de datos de gran tamaño y de una manera mas rápida que las soluciones existentes en ese momento, que se utilizara en aplicaciones de alta demanda y por periodos prolongados de tiempo. A través de su constante desarrollo ahora ofrece un grupo de funciones rico y útil. (Oracle, 2014) Consiste en un programa cliente/servidor multi-hilo SQL, que permite soportar varias terminales, y atender gran cantidad de diversos programa y librerías, herramientas administrativas, y un rango amplio de Interfaces de Programa de Aplicación (API). Puede utilizarse también en sistemas empo-

37 2.3. Android 23 trados. (Oracle, 2014) 2.3 Android Andriod es la plataforma móvil más popular en el mundo. Se encuentra en centenares de millones de dispositivos en más de 190 países alrededor del mundo. Es la base instalada más grande de cualquier plataforma móvil y de rápido crecimiento, ya que cada día un nuevo millón de usuarios instala a sus dispositivos Android por primera vez e inician la búsqueda de aplicaciones, juegos y otros contenidos digitales. (Android, 2011) Proporciona una plataforma de clase mundial para la creación de aplicaciones y juegos para usuarios de Android en cualquier lugar del mundo, por medio de un mercado abierto para la distribución instantánea de las mismas. (Android, 2011) Es creado con la contribución de la Comunidad de Linux y más de 300 contribuyentes de hardware, software y distribución, por lo que ha venido creciendo rápidamente como Sistema Operativo Móvil. La apertura de Android ha creado un favoritismo por parte de los desarrolladores y consumidores, dirigiéndolo hacia un fuerte crecimiento en el consumo. Los usuarios de Android descargan más de 1,5 billones de aplicaciones y juegos desde Google Play cada mes. En conjunto con su colaboradores, Android está constantemente extendiendo los límites del hadrware y software con el fin de crear nuevas capacidades para los usuarios y desarrolladores. Para los desarrolladores, la constante innovación de Android, les permite crear aplicaciones cada vez más potentes y diferenciadas que utilizan las últimas tecnologías móviles. Android proporciona todo lo que se necesita para crear una aplicación que signifique para el usuario una experiencia única en su clase. Provee una única aplicación modelo que se puede desarrollar para cientos de millones de usuarios a través de una amplia gama de dispositivos tales como teléfonos, tabletas y demás. También provee herramientas para la creación de aplicaciones de apariencia grande y que aprovechan las capacidades de Hardware disponibles en cada dispositivo. Se adapta automáticamente la interfaz de usuario con el fin de ofrcer la mejor visualización en cada dispositivo, mientras brinda mayor control sobre la interfaz de usuario en diferentes dispositivos. Con el fin de ayudar a los desarrolladores a desempeñar su labor de manera eficiente, existe Android Developer Tools que ofrece un Java IDE completo con funciones avanzadas para el desarrollo, depuración y empaquetado de aplicaciones de Android. Usando el IDE se puede desarrollar aplicaciones

38 24 2 Marco Teórico para cualquier dispositivo Android disponible o crear dispositivos virtuales para emular cualquier configuración de hardware. Además Android posee Google Play que es el principal mercado de venta y distribución de aplicaciones. Cuando se publica una aplicación en Google Play, se llega a la enorme base instalada de Android. Como un mercado abierto, Google Play te pone en control de cómo vender sus productos. Se puede publicar siempre que se desee, con la frecuencia que se desee y, para los clientes que se desee. Es posible distribuir ampliamente a todos los mercados y dispositivos o bien centranse en segmentos específicos, dispositivos, o rangos de capacidades de hardware.(android, 2011) Arquitectura de Android El sistema operativo Android es un conjunto de componentes el cual está divididoencincosecciones ycuatrocapascomosepuedeobservarenlaimagen 2.4. A continuación describen cada una de esas capas. Kernel de Linux El núcleo del sistema operativo Android es un kernel Linux versión 2.6, similar al que puede incluir cualquier distribución de Linux, como Debian, solo que adaptado a las características del hardware en el que se ejecutará Android. Proporciona una capa de abstracción para los elementos hardware a los que tienen que acceder las aplicaciones. Esto permite que se pueda acceder a esos componentes sin necesidad de conocer el modelo o características precisas de los que están instalados en cada terminal. De esta forma, si una aplicación necesita algún hardware, podrá utilizar la que incluya el dispositivo, sea cual sea. Para cada elemento hardware del teléfono existe un controlador (driver) dentro del kernel que permite utilizarlo desde el software. Además de proporcionar controladores hardware, el kernel se encarga de gestionar los diferentes recursos como la energía y memoria y proporciona la funcionalidad del sistema operativo en sí tales como procesos, elementos de comunicación, entre otros. (Vico, 2011) Bibilotecas La capa situada sobre el Linux kernel la componen las bibliotecas nativas de Android. Estas bibliotecas están escritas en C o C++ y son compiladas para la arquitectura hardware específica del teléfono, por lo que esta tarea normalmente la realiza el fabricante, que también se encarga de instalarlas en el terminal antes de ponerlo a la venta. Su objetivo es proporcionar funcionalidad a las aplicaciones, para tareas frecuentes, evitando tener que codificarlas cada vez y garantizando que se llevan a cabo de la forma más eficiente. (Vico, 2011)

39 2.3. Android 25 Figura 2.4: Estructura de la Arquitectura de Android. (Vico, 2011) Algunas de las bibliotecas que se incluyen habitualmente son las que se observan a continuación: Gestor de superficies (Surface Manager): se encarga de componer las imágenes que se muestran en la pantalla a partir de capas gráficas 2D y 3D. Cada vez que la aplicación pretende dibujar algo en la pantalla, la biblioteca no lo hace directamente sobre ella. En vez de eso, realiza los cambios en imágenes (mapas de bits) que almacena en memoria y que después combina para formar la imagen final que se envía a pantalla. Esto permite realizar con facilidad diversos efectos: superposición de elementos, transparencias, transiciones, animaciones, etcétera. SGL (Scalable Graphics Library): desarrollada por Skia y utilizada tanto en Android como en Google Chrome, se encarga de representar

40 26 2 Marco Teórico elementos en dos dimensiones. Es el motor gráfico 2D de Android. OpenGL ES (OpenGL for Embedded Systems): motor gráfico 3D basado en las APIs (Application Program Interface) de OpenGL ES 1.0, 1.1 (desde la versión 1.6 de Android) y 2.0 (desde la versión 2.2 de Android). Utiliza aceleración hardware (si el teléfono la proporciona) o un motor software altamente optimizado (o eso dice Google) cuando no la hay. Bibliotecas multimedia: basadas en OpenCORE, permiten visualizar, reproducir e incluso grabar numerosos formatos de imagen, vídeo y audio como JPG, GIF, PNG, MPEG4, AVC (H.264), MP3, AAC o AMR. WebKit: motor web utilizado por el navegador (tanto como aplicación independiente como embebido en otras aplicaciones). Es el mismo motor que utilizan Google Chrome y Safari. SSL (Secure Sockets Layer): proporciona seguridad al acceder a Internet por medio de criptografía. FreeType: permite mostrar fuentes tipográficas, tanto basadas en mapas de bits como vectoriales. SQLite: motor de bases de datos relacionales, disponible para todas las aplicaciones. Biblioteca C de sistema (libc): está basada en la implementación de Berkeley Software Distribution (BSD), pero optimizada para sistemas Linux embebidos. Proporciona funcionalidad básica para la ejecución de las aplicaciones. Entorno de ejecución El entorno de ejecución de Android, se apoya en las bibliotecas mencionadas anteriormente, sin embargo no se considera una capa en sí mismo, dado que también está formado por bibliotecas. Comprende las bibliotecas esenciales de Android, que incluyen la mayoría de la funcionalidad de las bibliotecas habituales de Java así como otras específicas de Android. El componente principal del entorno de ejecución de Android es la máquina virtual Dalvik, componente que ejecuta todas y cada una de las aplicaciones no nativas de Android. Las aplicaciones se codifican normalmente en Java y son compiladas, pero no para generar un ejecutable binario compatible con la arquitectura hardware específica del dispositivo Android. En lugar de eso, se compilanenunformatoespecíficoparalamáquinavirtualdalvik,queeslaque

41 2.3. Android 27 las ejecuta. Esto permite compilar una única vez las aplicaciones y distribuirlas ya compiladas teniendo la total garantía de que podrán ejecutarse en cualquier dispositivo Android que disponga de la versión mínima del sistema operativo que requiera cada aplicación. A pesar que las aplicaciones se escriben en Java, Dalvik no es realmente una máquina virtual Java. Es decir, no es compatible con el bytecode Java (instrucciones ejecutables independientes de la arquitectura hardware) que ejecutan las máquinas virtuales Java normales. Java se usa únicamente como lenguaje de programación, pero los ejecutables que se generan con el SDK de Android no son ejecutables Java convencionales y, por lo tanto, no se pueden ejecutar en máquinas virtuales Java convencionales. Durante el proceso de compilación de los programas Java (archivos.java) y el bytecode habitual (archivos.class), son convertidos al formato específico de Dalvik en el proceso final (.dex, Dalvik executable). Esto se hace así por una cuestión de optimización. Los archivos.dex son mucho más compactos que los.class equivalentes (hasta un 50% menos de tamaño), lo que permite ahorrar espacio en el teléfono (algo siempre escaso) y acelerar el proceso de carga. Además, a diferencia de las máquinas virtuales tradicionales, Dalvik se basa en registros en lugar de una pila para almacenar los datos, lo que requiere menos instrucciones. Esto permite ejecuciones más rápidas en un entorno con menos recursos. Las aplicaciones Android se ejecutan cada una en su propia instancia de la máquina virtual Dalvik, evitando así interferencias entre ellas, y tienen acceso a todas las bibliotecas mencionadas antes y, a través de ellas, al hardware y al resto de recursos gestionados por el kernel. (Vico, 2011) Marco de aplicación La siguiente capa la forman todas las clases y servicios que utilizan directamente las aplicaciones para realizar sus funciones, que se apoyan en las bibliotecas y en el entorno de ejecución que se ha detallado. La mayoría de los componentes de esta capa son bibliotecas Java que acceden a los recursos a través de la máquina virtual Dalvik. Entre las más importantes se encuentran las siguientes: Administrador de actividades (Activity Manager): se encarga de controlar el ciclo de vida de las actividades y la pila de actividades. Las actividades se pueden definir como las ventanas que se muestran, una sobre otra, en la pantalla del dispositivo Android, utiliza un concepto de ventana similar al de los sistemas operativos gráficos de PC, aunque el funcionamiento en Android es muy diferente.

42 28 2 Marco Teórico Administrador de ventanas (Windows Manager): se encarga de organizar lo que se muestra en pantalla, creando superficies que pueden ser rellenadas por las actividades. Proveedor de contenidos (Content Provider): permite encapsular un conjunto de datos que va a ser compartidos entre aplicaciones creando una capa de abstracción que hace accesibles dichos datos sin perder el control sobre cómo se accede a la información. Por ejemplo, uno de los proveedores de contenido existentes permite a las aplicaciones acceder a los contactos almacenados en el teléfono. Esta biblioteca permite crear también proveedores propios para permitir que otras aplicaciones accedan a información que gestiona la aplicación creada. Vistas (Views): así como se equiparó anteriormente las actividades con las ventanas de un sistema operativo de PC, las vistas se pueden equiparar con los controles que se suelen incluir dentro de esas ventanas. Android proporciona numerosas vistas con las que construir las interfaces de usuario: botones, cuadros de texto, listas y otros. También proporciona otras más sofisticadas, como un navegador web o un visor de Google Maps. Administrador de notificaciones (Notification Manager): proporciona servicios para notificar al usuario cuando algo requiera su atención. Normalmente las notificaciones se realizan mostrando alerta en la barra de estado, pero esta biblioteca también permite emitir sonidos, activar el vibrador o hacer pardear los LEDs del teléfono, en caso que los posea. Administrador de paquetes (Package Manager): las aplicaciones Android se distribuyen en paquetes (archivos.apk) que contienen tanto los archivos.dex como todos los recursos y archivos adicionales que necesite la aplicación, para facilitar su descarga e instalación. Esta biblioteca permite obtener información sobre los paquetes actualmente instalados en el dispositivo Android, además de gestionar la instalación de nuevos paquetes. Administrador de telefonía (Telephony Manager): proporciona acceso a la pila hardware de telefonía del dispositivo Android, si la tiene. Permite realizar llamadas o enviar y recibir SMS/MMS, aunque no permite reemplazar o eliminar la actividad que se muestra cuando una llamada está en curso, esto por motivos de seguridad. Administrador de recursos (Resource Manager): proporciona acceso a todos los elementos propios de una aplicación que se incluyen

43 2.3. Android 29 directamente en el código: cadenas de texto traducidas a diferentes idiomas, imágenes, sonidos e incluso disposiciones de las vistas dentro de una actividad (layouts). Permite gestionar esos elementos fuera del código de la aplicación y proporcionar diferentes versiones en función del idioma del dispositivo o la resolución de pantalla que tenga, por ejemplo. Administrador de ubicaciones (Location Manager): permite determinar la posición geográfica del dispositivo Android, ya sea mediante el usodel GPS o de las redes disponibles, además detrabajar con mapas. Administrador de sensores (Sensor Manager): permite gestionar todos los sensores hardware disponibles en el dispositivo Android: acelerómetro, giroscopio, sensor de luminosidad, sensor de campo magnético, brújula, sensor de presión, sensor de proximidad, sensor de temperatura, etcétera. Cámara: proporciona acceso a las cámaras del dispositivo Android, tanto para tomar fotografías como para grabar vídeo. Multimedia: conjunto de bibliotecas que permiten reproducir y visualizar audio, vídeo e imágenes en el dispositivo. (Vico, 2011) Aplicaciones La capa superior de esta pila software la forman las aplicaciones. En esta se incluyen todas las aplicaciones del dispositivo, tanto las que tienen interfaz de usuario como las que no, así como las nativas (programadas en C o C++) como las administradas (programadas en Java), además de las que vienen de serie con el dispositivo como las instaladas por el usuario. En esta se encuentra también la aplicación principal del sistema: Inicio (Home), también llamada a veces lanzador (launcher), porque es la que permite ejecutar otras aplicaciones proporcionando la lista de aplicaciones instaladas y mostrando diferentes escritorios donde se pueden colocar accesos directos a aplicaciones o incluso pequeñas aplicaciones incrustadas o widgets, que son también aplicaciones de esta capa. Lo principal a tener en cuenta de esta arquitectura es que todas las aplicaciones, ya sean las nativas de Android, las que proporciona Google, las que incluye de serie el fabricante del teléfono o las que instala después el usuario utilizan el mismo marco de aplicación para acceder a los servicios que proporciona el sistema operativo. Esto implica dos cosas: que es posible crear aplicaciones que usen los mismos recursos que usan las aplicaciones nativas, es decir nada está reservado o inaccesible, y que se puede reemplazar cualquiera de las aplicaciones del teléfono por otra de elección del usuario. Este es el verdadero potencial de Android y lo que lo diferencia de su competencia: control

44 30 2 Marco Teórico Cuadro 2.11: Componetes principales de una aplicación Android. (Tutorialspoint, 2014) Componente Actividades Servicios Receptor de Difusión Proveedor de Contenidos Descripción Dictan la interfaz de usuario (UI) y maneja la interacción del usuario con la pantalla Manejan los procesos de fondo asociados a una aplicación Maneja la comunicación entre el sistema operativo y las aplicaciones Maneja los datos y los problemas de gestión de base de datos total por parte del usuario del software que se ejecuta en su teléfono. (Vico, 2011) Aplicaciones en Android Las aplicaciones Android son usualemnete desarrolladas en lenguaje Java utilizando el Android Software Development Kit o Android SDK que se va a explicar más adelante. Una vez desarrolladas las aplicaciones pueden ser empaquetadas fácilmente y puestas a la venta a través de diversas tiendas como lo son Google Play o Amazon Appstore. Las aplicaciones Android están compuestas por bloques esenciales. Estos componentes se encuentran acoplados por medio del archivo AndroidManifest.xml, en el cual se describe cada componente de la aplicación y la interacción entre los mismos. Los componentes principales se puede observa en la tabla 2.11 y se describirán con mayor detalle a continuación. Actividades (Activities) Una actividad representa una sola pantalla con una interfaz de usuario. Por ejemplo una aplicacióm de correo electrónico puede tener una actividad para mostrar el listado de los correos, una actividad para crear un correo y otra actividad paralalectura deuncorreo. Enel caso quelaaplicación posea varias actividades, una de ellas debe ser definida como la actividad de inicio, para cuando la aplicación es iniciada. Una actividad se implementa como una subclase de la Clase Actividad (Activity) como se muestra a continuación:

45 2.3. Android 31 } public class MainActivity extends Activity { Servicios (Services) Un servicio es un componente que corre en el segundo plano o background para realizar operaciones que tardan gran cantidad de tiempo en ejecutarse. Por ejemplo un servicio puede reproducir música en el segundo plano mientras el usuario está en diferentes aplicaciones o puede obtener datos de la red sin bloquear la interacción del usuario con una actividad. Un servicio es implementado como una subclase de la clase Service como se muestra a continuación: public class MyService extends Service { } Receptores de Difusión (Broadcast Receivers) Los receptores de difusión simplemente responden a mensajes de difusión o bien de aplicaciones del sistema. Por ejemplo, las aplicaciones tambien pueden emitir transmisiones para informar a otras aplicaciones que se han descargado datos al dispositivo y que están disponibles para que los utilicen, es entonces donde el receptor de difusión intercepta la comunicación e inicia las acciones apropiadas. Un receptor de difusión es implementado como una subclase de la clase BroadcastReceiver y cada mensaje es difundido como un objeto Intento: public class MyReceiver extends BroadcastReceiver { } Proveedor de Contenido (Content Providers) Un proveedor de contenido suministra información de una aplicación a otras por medio de una solicitud. Dicha solicitud es manejada por métodos de la clase ContentResolver. Los datos pueden ser almacenados en el sistema de archivos, la base de datos o en cualquier otra ubicación. Un proveedor de contenido es implementado como una subclase de la clase ContentResolver y debe implementar un conjunto estándar de APIs que permitan a otras aplicaciones realizar las transacciones. public class MyContentProvider extends ContentProvider { }

46 32 2 Marco Teórico Cuadro 2.12: Componetes adicionales de una aplicación Android. (Tutorialspoint, 2014) Componente Fragmentos (Fragments) Vistas (Views) Capas (Layouts) Intentos (Intents) Recursos (Resources) Manifest Descripción Representa un comportamiento o una porción de una interfaz de usuarios en una actividad Elementos de la interfaz de usuario que se muestran en pantalla incluyendo botones, listas, entre otros Jerarquía de vistas que controlan el formato de la pantalla y la apariencia de las vistas Mensajes para conectar componentes juntos Elementos externos, como cadenas de texto, constantes e imágenes Archivo de configuración de la aplicación Componentes Adicionales Existen componentes adicionales, los cuales pueden ser usados en la construcción de las entidades anteriormente mencionadas, en su lógica y las conexiones entre ellos. Estos componentes se puede observar en la tabla Android SDK Android SDK provee las librerías API y las herramientas de desarrollo necesarias para crear, probar y depurar aplicaciones para dispositivos móviles con sistema operativo Android. (Android, 2014) Es posible descargarlo de manera gratuita desde la página de los Desarrolladores de Android, ya sea solamente el Android SDK o bien el ADT Bundle, ADT es el acrónimo de Android Developer Tools, que en español sería Herramientas para Desarrollares de Android, que contiene todo el conjunto de el Android SDK esencial y una versión de Eclipse IDE. Además, recientemente se ha puesto a las disposición de los desarrolladores el Android Studio que es similar al ADT Bundle, pero contiene algunas mejoras, sin embargo se encuentra todavía en sus primeras versiones de prueba o versiones beta, pero va a convertirse en el nuevo IDE oficil para el desarrollo de aplicaciones. El Eclipse ADT bundle contiene lo siguiente, lo cual contituye lo necesario para desarrollar una aplicación para Android: Eclipse + ADT plugin Android SDK Tools

47 2.3. Android 33 Android Platform-tools Una versión de la Plataforma Android Una versión de la imagen de Sistema Android para el emulador Este sistema para el desarrollo de aplicaciones se encuentra disponible para utilizarse en los Sistemas Operativos: Windows, Mac OS y Linux. Para esto es necesario instalar un Kit de Desarrollo Java, JDK por su nombre en inglés Java Development Kit debido a que está basado en Java. OpenGL OpenGL (Open Graphics Library) es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consiste en más de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionales complejas a partir de primitivas geométricas simples, tales como puntos, líneas y triángulos. Fue desarrollada originalmente por Silicon Graphics Inc. (SGI) en 1992 y se usa ampliamente en CAD, realidad virtual, representación científica, visualización de información y simulación de vuelo. También se usa en desarrollo de videojuegos, donde compite con Direct3D en plataformas Microsoft Windows. (OpenGL, 2014) OpenGL es una especificación, que describe un conjunto de funciones y el comportamiento exacto que deben tener un determinado hardware. Tomando dica especificación como base, los fabricantes de hardware crean implementaciones, que son bibliotecas de funciones que se ajustan a los requisitos de la especificación, utilizando aceleración hardware cuando es posible. Dichas implementaciones deben superar varias pruebas de conformidad para que sus fabricantes puedan calificar su implementación como conforme a OpenGL y para poder usar el logotipo oficial de OpenGL. OpenGL tiene dos propósitos esenciales: 1. Ocultar la complejidad de la interfaz con las diferentes tarjetas gráficas, presentando al programador una API única y uniforme. 2. Ocultar las diferentes capacidades de las diversas plataformas hardware, requiriendo que todas las implementaciones soporten la funcionalidad completa de OpenGL, utilizando emulación software si fuese necesario. El funcionamiento básico de OpenGL consiste en aceptar primitivas tales como puntos, líneas y polígonos, y convertirlas en píxeles. Este proceso es realizado por una pipeline gráfica conocida como Máquina de estados de OpenGL. La mayor parte de los comandos de OpenGL emiten primitivas a la pipeline

48 34 2 Marco Teórico gráfica o bien configuran cómo la pipeline procesa dichas primitivas. Hasta la aparición de la versión 2.0 cada etapa de la pipeline ejecutaba una función prefijada, resultando poco configurable. A partir de la versión 2.0 algunas etapas son programables usando un lenguaje de programación llamado GLSL. OpenGL es una API basada en procedimientos de bajo nivel que requiere que el programador dicte los pasos exactos necesarios para renderizar una escena. Esto contrasta con las APIs descriptivas, donde un programador sólo debe describir la escena y puede dejar que la biblioteca controle los detalles para representarla. El diseño de bajo nivel de OpenGL requiere que los programadores conozcan en profundidad la pipeline gráfica, a cambio de darles libertad para implementar algoritmos gráficos novedosos. OpenGL ha influido en el desarrollo de las tarjetas gráficas, promocionando un nivel básico de funcionalidad que actualmente es común en el hardware comercial; algunas de esas contribuciones son: Primitivas básicas de puntos, líneas y polígonos rasterizados. Un pipeline de transformación e iluminación. Z-buffering. Mapeado de texturas. Alpha blending. Muchas tarjetas gráficas actuales proporcionan una funcionalidad superior a la básica aquí expuesta, pero las nuevas características generalmente son mejoras de esta pipeline básica más que cambios revolucionarios de ella. Las versiones oficiales de OpenGL publicadas hasta el momento son: 1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, 1.5, 2.0, 2.1, 3.0, 3.1, 3.2, 3.3, 4.0, 4.1, 4.2, 4.3, 4.4 y 4.5.

49 3 Diseño A continuación se va a describir en detalle como se ha llevado a cabo el diseño del sistema. En cuanto a al servidor se hizo uso de un servidor de pruebas de la Escuela de Ingeniería Eléctrica, en el cual se cuenta con el sistema operativo y los programas mencionados anteriormente en el Capítulo Base de Datos Se creó la Base de Datos con el nombre acceso_licit, utilizando MySQL, consiste en una base de datos relacional con varias tablas que se relacionan entre sí, como se puede observar el la figura 3.1. Lastablas queseutilizaronparaalmacenar losdatossonlasquesedetallan a continuación: user Como su nombre lo dice, esta tabla se utiliza para registrar la información de los usuarios, tiene la estructura que se observa en el cuadro 3.1. Figura 3.1: Estructura de la Base de Datos acceso_licit 35

50 36 3 Diseño Cuadro 3.1: Descripción de la tabla user Campo Tipo Null Key Default Extra id int(9) NO PRI NULL username text NO NULL password blob NO NULL text NO NULL rol id int(11) NO MUL NULL Los campos son los siguientes: id: En este campo se guarda el Id de cada usuario, el cual se definió que se va a utilizar el número de cédula, por mayor facilidad a la hora de implementar el sistema. Además para que el usuario no tuviera la necesidad de aprenderse un ID nuevo, sino que utilice algo que ya es conocido. El tipo de este campo es un entero de 9 dígitos de longitud, cantidad de dígitos que posee un número de cédula costarricense. username: Es correspondiente al nombre del usuario, funciona principalmente como referencia para las personas que van a realizar consultas a la base de datos,ya que difícilmente alguien va a saber el número de cédula de los usuarios de memoria. password: Es la contraseña de cada usuario, la cual se va a utilizar para el acceso al LICIT y para Iniciar Sesión en la aplicación, consiste en un número de cuatro dígitos. Esta se encuentra encriptada en la Base de Datos con la función AES ENCRYPT, el cual codifica la contraseña basada en una clave, es de tipo blob, ya que así lo requiere este método. Corresponde al correo electrónico del usuario, funge principalmente como referencia para los adminsitradores, profesores y dempas personas que posean acceso al sistema para poder enviar notificaciones acerca del mismo. rol_id: indica el valor del id del Rol asignado al usuario, está ligado a la tabla rol por lo que solamente puede tomar un valor que se encuentre en esta tabla.

51 3.1. Base de Datos 37 Cuadro 3.2: Descripción de la tabla rol Campo Tipo Null Key Default Extra id int(11) NO PRI NULL auto increment rolname text NO NULL Cuadro 3.3: Contenido inicial de la tabla rol id rolname 1 Administrador 2 Profesor 3 Estudiante rol En esta tabla se enlistan los roles que puede adquirir cada uno de los usuarios, en un principiose definieron los que se encuentran en el cuadro 3.3. Estos roles van ligados a otras tablas como se mostró anteriormente con la tabla user, además se van a utilizar para definir los permisos que tiene cada uno de los usuarios. Está conformada por los campos que se observan en el cuadro 3.2, en donde el id es la llave primaria de la tabla, que tiene un valor único y que no puede ser nulo, por lo que permite identificar a cada uno de los roles en las demás tablas con las que se desee tener relación. El campo restante rolname corresponde al nombre del rol, funciona como identificador para las personas y además proporciona una idea de la función o cargo que desempeña ese usuario en el sistema. Cabe destacar que se hace esta tabla con el fin que sea expandible según las necesidades de cada aplicación, ya que es posible que se quiere agregar mayor cantidad de roles. permission La tabla permission contiene el listado de los permisos que se pueden asignar a cada uno de los usuarios dependiendo del rol que posea cada uno o bien de las necesidades de cada uno de los usuarios del sistema. Los campos que la conforman son muy similares a los de la tabla rol, ya que el id es un identificador del permiso y el permissionname corresponde

52 38 3 Diseño Cuadro 3.4: Descripción de la tabla permission Campo Tipo Null Key Default Extra id int(11) NO PRI NULL auto increment permissionname text NO NULL Cuadro 3.5: Contenido inicial de la tabla permission id permissionname 1 Crear usuarios 2 Editar usuarios 3 Editar usuario (propio) 4 Ver registros de acceso propios 5 Ver registros de acceso otros usuarios 6 Borrar usuarios 7 Borrar registros al nombre del permiso o bien una descripción del permiso que se brinda al asignarlo. De la misma manera se crea la tabla con el fin que se pueda agregar otros permisos según las necesidades o funcionalidades que se implementen en el sistema. Inicialmente está enfocado a permisos para el uso de la aplicación, sin embargo también pueden extenderse a otro tipo de permisos. Los primeros permisos que se agregaron son los que se muestran en la tabla 3.5. permissionrol La tabla permissionrol es para realizar el mapeo o la relación entre los roles y los permisos, esto con el fin de asignar los permisos a cada uno de los roles o bien deshabilitarlos si se quisiera. Es de gran utilidad, ya que permite visualizar que permisos tiene un determinado rol o bien cuales roles tienen asignado un permiso específico. Está conformada por los campos siguientes: id: al igual que en la mayoría de tablas, funciona como un identificador únicodecada unodelos registros odatos queseencuentranenla misma, el cual brinda facilidades a la hora de realizar modificaciones en la tabla. Este valor se autoincrementa con cada entrada a la tabla, por lo que no

53 3.1. Base de Datos 39 Cuadro 3.6: Descripción de la tabla permissionrol Campo Tipo Null Key Default Extra id int(11) NO PRI NULL auto increment rol id int(11) NO MUL NULL permission id int(11) NO MUL NULL cando tinyint(1) NO NULL se debe especificar ningún valor para el mismo a la hora de ingresar datos. rol_id: corresponde al id del rol en la tabla rol, se encuentra ligado a esta tabla siendo una Llave Foránea, la cual solamente permite valores que existan en la tabla con la cual está referenciada. permission_id: de la misma manera que con el campo rol_id se encuentra ligado a los valores de la tabla permission, por lo que permite elegir uno de estos valores, realizando la asignación del permiso. cando: este campo se utiliza como un tipo de bandera de habilitación, si bien la relación entre alguno de los roles y alguno de los permisos puede no existir y de esta manera no estar ligado, cabe la posibilidad que en ocasiones se ha asignado pero se desea deshabilitar el permiso, ya sea temporal o permanentemente, este campo permite de una manera sencilla habilitar o deshabilitar el permiso cambiando el valor entre 0 y 1, deshabilitado y habilitado respectivamente. accessregister En la tabla accessregister se va a registrar todos los accesos realizados por los usuarios al laboratorio, con el fin de poder llevar el control de los usuarios que accesan al LICIT y además en qué momento lo hacen, ya que como se mencionó anteriormente en el documento no debería tener libre acceso. Los campos que conforman esta tabla son los que se describen a continuación: id: el campo identificador que existe en casi que toda las tablas que se crearon en la base de datos. Posee la propiedad que se define automaticamente con cada registro que se agrega (auto_increment).

54 40 3 Diseño Cuadro 3.7: Descripción de la tabla accessregister Campo Tipo Null Key Default Extra id int(11) NO PRI NULL auto increment user id int(9) NO MUL NULL rol id int(11) NO NULL datetime timestamp NO CURRENT TIMESTAMP weekinfo tinyint(2) NO MUL NULL user_id: corresponde al Id del usuario con el cual se está registrando el acceso al laboratorio, el cual igualmente se encuentra relacionado con la tabla user. rol_id: en este campo se va a registrar el rol que tenía el usuario en el momento de registrarse el acceso, esto con el fin que en caso de cambiar en el tiempo el rol asignado al usuario, se mantenga la visibilidad de cual era el rol que desempeñaba en el momento de ingresar. datetime: registra el momento exacto en el que se está realizando el acceso, registra tanto la fecha como la hora del ingreso. weekinfo: en este campo se registra el número de la semana del año en el que se está registrando el ingreso, este campo además se definió como índice y se agregó con el fin de mejorar el tiempo de ejecución de las consultas de esta tabla, ya que esta tabla al contener todos los registros de acceso de todos lo usuarios va tener un gran tamaño; por lo que agregar un índice de este tipo lo que va a ayudar a mejorar el tiempo que se tarda en realizar las consultas. 3.2 Comunicación con el Sistema de Acceso La comunicación con el Sistema de Acceso se realiza para realizar la validación de los usuarios que accesan a LICIT y además agregar a la base de datos los registros de los mismos una vez que son aprobados. Elsistemadeaccesoquesevaautilizarrealizaunacomunicaciónpormedio de TCP, por lo que se utiliza este protocolo para llevar a cabo la comunicación entre ambos.

55 3.2. Comunicación con el Sistema de Acceso 41 El programa se nombró como accesslistener y se contruyó en el lenguaje Python utilizando los módulos sys, socket, MySQLdb y datetime para llevar a cabo la funcionalidad, las cuales se van a describir brevemente más adelante. Módulo sys Este es uno de los módulos estándar del sistema, proporciona acceso al uso de algunas variables y funciones de interacción con el intérprete. En el programa es utilizada para el manejo de las variables las cuales principalmente son string, ya que es texto lo que se trabaja en la mayor parte del tiempo. Módulo socket Provee las funciones necesarias para establecer la comunicación a través del protocolo TCP o UDP, tales como la apertura del socket, aceptar las conexiones, enviar y recibir datos a través de la conexión de la red. Por lo que este modo es fundamental en el programa ya que establece la comunicación con el sistema de acceso al laboratorio. Módulo MySQLdb Este módulo provee las funciones necesarias para realizar la conexión al programa MySQL, que es el DBMS utilizado para la implementación de la base de datos del sistema. También es parte primordial del programa, ya que se requiere consutar la base de datos para realizar la validación de los usuarios y crear los registros de acceso con cada solicitud. Módulo datetime Provee las facilidades para trabajar con variables de fecha y tiempo, el cual es utilizado para obtener variables de este tipo del sistema, así como el manejo de las mismas en caso de requerirse realizar operaciones entre variables de este tipo. Funcionamiento del Programa de comunicación (accesslistener) Como se puede observar en el diagrama de la figura 3.2 inicialmente lo que se hace es abrir el socket de comunicación por el cual se va a recibir y enviar la información, para esto es necesario definir el puerto que se va a utilizar y se debe estra consciente que algunos puertos son utilizados por programas especificos por lo que no se deben utilizar ya que provocaría un problema en el funcionamiento de los sistemas.

56 42 3 Diseño Una vez creado el socket se procede a escuchar el puerto elegido en espera de entablar una conexión y comunicación con algún otro sistema, que en este caso sería el sistema de acceso a la entrada del LICIT. En cuanto se encuentre una solicitud, se establece la conexión a través del protocolo TCP. Ya habiéndose establecido la conexión entre ambos el sistema está a la espera de la transmisión de paquetes de información, cuando un paquete es recibido es programa se encarga de obtener de él el usuario y la contraseña del usuario que está realizando la solicitud de acceso. El programa obtiene la contraseña del usuario que se encuentra registrada en la base de datos, se realiza la comparación de la contraseña recibida y la contraseña de la tabla user, si éstas coinciden el acceso es Aprobado y en caso contrario el acceso es Denegado, respuesta que se envía al sistema de acceso para que realice la apertura de la puerta o no. En el caso que el acceso se apruebe el mismo programa va a registrar la entrada de ese usuario en la base de datos en la tabla accessregister. Además el programa en cada uno de los pequeños procesos, va a ir escribiendo en un archivo log lo que va sucediendo con el programa, para tener una perspectiva de que es lo que ha sucedido con el mismo en el transcurso del tiempo y además registrar todos los accesos fallidos que se realizaron, así como la dirección desde la cual se realizaron las consultas. El log del programa posee el nombre accesolicit.log. 3.3 Aplicación para dispositivos Android Se diseñó una aplicación con nombre AccesoLicit, para realizar las consultas de la información del sistema, así como para la ejecución de labores comunes de mantenimiento del sistema. La idea de realizarla por medio de una aplicación para teléfonos inteligentes es que los usuarios puedan realizar las tareas con el dispositivo que utilizan frecuentemente y que llevan siempre con ellos. La aplicación consta de varias actividades, que corresponde a cada una de las pantallas que se muestran en una aplicación y que poseen su función específica. La funcionalidad de estas actividades es programada en el lenguaje Java, ya que es el que utilizan la aplicaciones en Android, además las especificaciones de las vistas de cada una se crean en un archivo xml el cual contiene cada uno de los elementos de la vista y en el cual se lleva a cabo el diseño visual. La aplicación se comunica con el servidor por medio de Internet, ejecutando el método POST de PHP a unos archivos que se encuentran en el servidor, que llevan acabolaconsultaalabasededatosyotrasfuncionesparabrindarleala aplicación la información solicitada por medio de un JSON. JSON es el acrónimo del nombre en inglés JavaScript Object Notation, que es una notación utilizada

57 3.3. Aplicación para dispositivos Android 43 Figura 3.2: Diagrama de Flujo del programa de comunicación accesslistener en aplicaciones web principalmente para el almacenamiento e intercambio de información. Los archivos.php son accesados por medio de una dirección electrónica o URL, al igual que se hace con una página web, para este caso se está haciendo uso de la dirección accesolicit.eie.ucr.ac.cr que se encuentra dentro del dominio de la Escuela de Ingeniería Eléctrica de la Universidad de Costa Rica y que está direccionada al servidor en el cual se han implementado la base de datos y demás programas. Esta configuración se hace en el programa Apache mencionado anteriormente en la sección 2.1. Se creó un ícono lanzador de la aplicación como en todas las aplicaciones para teléfonos inteligentes, se ingresa a la aplicación presionando un ícono el cual inicia la misma. Este puede ser observado en la figura 3.3. Una vez iniciada la aplicación la primera pantalla que el usuario va a observa es la actividad de Inicio de Sesión, figura 3.4, en la cual tiene que ingresar su Id de Usuario y la contraseña, las cuales son las mismas que se utilizan para el ingreso al laboratorio y que se encuentran en la tabla user. Esto se hace en los espacios destinados para eso, estos campos de ingreso fueron configurados para que solamente se ingresen números, debido a que

58 44 3 Diseño Figura 3.3: Icono para la apertura de la aplicación

59 3.3. Aplicación para dispositivos Android 45 Figura 3.4: Inicio de Sesión en la aplicación los usuarios y contraseñas en este sistema solamente están compuestos por números, además que se limitó la cantidad de caracteres máximo que se pueden digitar en cada uno de estos campos. Adicionalmente posee un botón de Inicio de Sesión el cual ejecuta la consulta al servidor por medio del método POST a un archivo de acceso el cual ejecuta la validación y le responde a la aplicación si el acceso el aprobado o denegado. Si se apruebael inicio de sesión en la aplicación, se va a mostrar la pantalla principal,lacualfuncionacomounmenúenelcual seeligenentrelasfunciones

MANUAL BÁSICO DEL LENGUAJE SQL

MANUAL BÁSICO DEL LENGUAJE SQL MANUAL BÁSICO DEL LENGUAJE SQL ESCUELA COLOMBIANA DE INGENIERÍA JULIO GARAVITO LABORATORIO DE INFORMÁTICA BOGOTÁ D. C. 2007-2 TABLA DE CONTENIDO INTRODUCCIÓN... 3 1. COMANDOS... 4 1.1 Comandos DLL... 4

Más detalles

BASES DE DATOS OFIMÁTICAS

BASES DE DATOS OFIMÁTICAS BASES DE DATOS OFIMÁTICAS Qué es una Bases de Datos Ofimática?. En el entorno de trabajo de cualquier tipo de oficina ha sido habitual tener un archivo con gran parte de la información necesaria para el

Más detalles

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

Más detalles

1.1.- Objetivos de los sistemas de bases de datos 1.2.- Administración de los datos y administración de bases de datos 1.3.- Niveles de Arquitectura

1.1.- Objetivos de los sistemas de bases de datos 1.2.- Administración de los datos y administración de bases de datos 1.3.- Niveles de Arquitectura 1. Conceptos Generales 2. Modelo Entidad / Relación 3. Modelo Relacional 4. Integridad de datos relacional 5. Diseño de bases de datos relacionales 6. Lenguaje de consulta estructurado (SQL) 1.1.- Objetivos

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

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

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

Más detalles

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios INTRODUCCION Tema: Protocolo de la Capa de aplicación. FTP HTTP Autor: Julio Cesar Morejon Rios Qué es FTP? FTP (File Transfer Protocol) es un protocolo de transferencia de archivos entre sistemas conectados

Más detalles

DIPLOMADO EN SEGURIDAD INFORMATICA

DIPLOMADO EN SEGURIDAD INFORMATICA DIPLOMADO EN SEGURIDAD INFORMATICA Modulo 9: Soporte Computacional Clase 9_3:Protocolos de comunicación y conectividad de arquitecturas multiplataforma. Director Programa: César Torres A Profesor : Claudio

Más detalles

Estructura de Bases de datos. Leonardo Víquez Acuña

Estructura de Bases de datos. Leonardo Víquez Acuña Estructura de Bases de datos Leonardo Víquez Acuña Lenguajes de Bases de Datos Un sistema de bases de datos proporciona Un lenguaje de definición de datos para especificar el esquema de la base de datos

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

El proyecto Debian GNU/Linux

El proyecto Debian GNU/Linux El proyecto Debian GNU/Linux Grupo GNU/Linux Universidad del Cauca 1.0 2 noviembre 2004 Resumen El proyecto Debian GNU/Linux es uno de los más ambiciosos proyectos de software libre en la actualidad, agrupando

Más detalles

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN Los protocolos de capa de aplicación de TCP/IP más conocidos son aquellos que proporcionan intercambio de la información

Más detalles

CAPITULO I El Problema

CAPITULO I El Problema CAPITULO I El Problema 1. CAPITULO I EL PROBLEMA. 1.1. PLANTEAMIENTO DEL PROBLEMA. Desde su nacimiento la Facultad de Administración, Finanzas e Informática dispone del departamento de la biblioteca, con

Más detalles

Ministerio de Educación Base de datos en la Enseñanza. Glosario

Ministerio de Educación Base de datos en la Enseñanza. Glosario Ministerio de Educación Base de datos en la Enseñanza. Glosario Instituto de Tecnologías Educativas 2011 Glosario Glosario GLOSARIO Archivo Un archivo es un elemento que contiene información y que a su

Más detalles

TEMA: PROTOCOLOS TCP/IP

TEMA: PROTOCOLOS TCP/IP TEMA: PROTOCOLOS TCP/IP HISTORIA: El Protocolo de Internet (IP) y el Protocolo de Transmisión (TCP), fueron desarrollados inicialmente en 1973 por el informático estadounidense Vinton Cerf como parte de

Más detalles

Windows Server 2012: Infraestructura de Escritorio Virtual

Windows Server 2012: Infraestructura de Escritorio Virtual Windows Server 2012: Infraestructura de Escritorio Virtual Módulo 1: Application Virtualization Módulo del Manual Autores: James Hamilton-Adams, Content Master Publicado: 5 de Octubre 2012 La información

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

Servidores Donantonio

Servidores Donantonio Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno.

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno. Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos

Más detalles

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib Manual de uso de la plataforma para monitores CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib [Manual de uso de la plataforma para monitores] 1. Licencia Autor del documento: Centro de Apoyo Tecnológico

Más detalles

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales. www.librosdigitales.

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales. www.librosdigitales. 1 Arquitectura de una Aplicación Android Para empezar con el desarrollo de aplicaciones en Android es importante conocer cómo está estructurado este sistema operativo. A esto le llamamos arquitectura y

Más detalles

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS Base de Datos ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS Una base de datos es un conjunto de elementos de datos que se describe a sí mismo, con relaciones entre esos elementos, que presenta

Más detalles

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas Módulos: Módulo 1 Hardware & Arquitectura de sistemas - 20 Horas Este módulo permite conocer y configurar los elementos básicos del hardware del sistema, como también otros componentes adicionales como

Más detalles

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

Ingeniería de Software. Pruebas

Ingeniería de Software. Pruebas Ingeniería de Software Pruebas Niveles de prueba Pruebas unitarias Niveles Pruebas de integración Pruebas de sistema Pruebas de aceptación Alpha Beta Niveles de pruebas Pruebas unitarias Se enfocan en

Más detalles

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian Guía de Instalación Página 1 Índice ESCUDO MOVISTAR.... 3 1. INSTALACIÓN DEL SERVICIO ESCUDO MOVISTAR... 3 1.1. VERSIONES SOPORTADAS... 3

Más detalles

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y Capítulo VI Conclusiones En este capítulo abordaremos la comparación de las características principales y de las ventajas cada tecnología Web nos ofrece para el desarrollo de ciertas aplicaciones. También

Más detalles

ADMINISTRACIÓN DE BASE DE DATOS

ADMINISTRACIÓN DE BASE DE DATOS SQL SERVER T-SQL QUERY s es ADMINISTRADOR GRÁFICO SGBD Elementos objetos Tablas Procedimientos Triggers Funciones Usuarios Permiso Roles Contraseñas Programas DTS (Data Transfer System) Exportación e Importación

Más detalles

Base de datos relacional

Base de datos relacional Base de datos relacional Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar

Más detalles

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS SISTEMA DE ESPECIICACION DE REQUERIMIENTOS Presentado por: Jefferson Peña Cristian Álvarez Cristian Alzate 10 CONTENIDO 1. INTRODUCCIÓN 1.1. PROPÓSITO 1.2. AMBITO DEL SISTEMA 1.3. DEFINICIONES, ACRÓNIMOS

Más detalles

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá Gestor de Contenidos CMS Que es un CMS? CMS son las siglas de Content Management System, que se traduce directamente al español como Sistema Gestor de Contenidos. Como su propio nombre indica, es un sistema

Más detalles

Visión General de GXportal. Última actualización: 2009

Visión General de GXportal. Última actualización: 2009 Última actualización: 2009 Copyright Artech Consultores S. R. L. 1988-2009. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento explícito de

Más detalles

Soporte Técnico de Software HP

Soporte Técnico de Software HP Soporte Técnico de Software HP Servicios Tecnológicos HP Servicios contractuales Datos técnicos El Soporte Técnico de Software HP ofrece servicios integrales de soporte remoto de para los productos de

Más detalles

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2) 1. Qué es un sistema operativo?...2 2. Funciones de los sistemas operativos...2 3. Windows...2 3.1. La interfaz gráfica...2 3.2. La administración y los usuarios...3 3.3. El sistema de archivos...3 3.4.

Más detalles

Políticas: Servicio de Computo de Alto Rendimiento

Políticas: Servicio de Computo de Alto Rendimiento Políticas: Servicio de Computo de Alto Rendimiento La Coordinación General de Tecnologías de Información a través de la Unidad de Apoyo a la Academia y la Investigación, ha definido políticas para el servicio

Más detalles

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII GUIA DISPONIBLE EN: http://preparadorivan.blogspot.com/ - http://preparadormssi.50webs.com/inicio.html La World Wide Web o la Web, es una de las múltiples

Más detalles

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

Consultas con combinaciones

Consultas con combinaciones UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden

Más detalles

Windows Server 2003. Windows Server 2003

Windows Server 2003. Windows Server 2003 Windows Server 2003 Windows Server 2003 Es un sistema operativo de la familia Windows de la marca Microsoft para servidores que salió al mercado en el año 2003. Está basada en tecnología NT y su versión

Más detalles

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite

Más detalles

Capas del Modelo ISO/OSI

Capas del Modelo ISO/OSI Modelo ISO/OSI Fue desarrollado en 1984 por la Organización Internacional de Estándares (ISO), una federación global de organizaciones que representa aproximadamente a 130 países. El núcleo de este estándar

Más detalles

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A) APRENDERAPROGRAMAR.COM QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A) Sección: Divulgación Categoría: Herramientas Informáticas Fecha

Más detalles

Lección 5: Bloc de notas Estudio de la aplicación Bloc de notas, utilizada para escribir sencillos documentos de texto de tamaño reducido.

Lección 5: Bloc de notas Estudio de la aplicación Bloc de notas, utilizada para escribir sencillos documentos de texto de tamaño reducido. Curso para conocer y aprender a manejar completamente el sistema operativo Microsoft Windows XP Professional, analizando desde el entorno del mismo hasta sus herramientas administrativas más complejas

Más detalles

CFGM. Servicios en red. Unidad 5 Servicio FTP. 2º SMR Servicios en Red

CFGM. Servicios en red. Unidad 5 Servicio FTP. 2º SMR Servicios en Red CFGM. Servicios en red Unidad 5 Servicio FTP CONTENIDOS 1.1. Cómo funciona el servicio FTP? 1.2. Características principales del servicio FTP 2. El cliente FTP 2.1. Uso del navegador web como cliente FTP

Más detalles

Centro Universitario de Ciencias Exactas e Ingenierías DIVISION DE ELECTRONICA Y COMPUTACION

Centro Universitario de Ciencias Exactas e Ingenierías DIVISION DE ELECTRONICA Y COMPUTACION CYBERSYS SISTEMA ADMINISTRADOR DE CYBERCAFÉS José Eduardo González Pacheco Oceguera eduardo.gonzalez-pacheco@siemens.com Juvenal Guevara Velasco juvenal1@hotmail.com Marcos Sairick Sánchez Castañeda msanchez@redwoodsystems.com.mx

Más detalles

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)

Más detalles

Los servicios que presta Internet. RETO: Conocer y utilizar los servicios que nos ofrece Internet.

Los servicios que presta Internet. RETO: Conocer y utilizar los servicios que nos ofrece Internet. Ciclo V - Informática. Guía # 2 Los servicios que presta Internet RETO: Conocer y utilizar los servicios que nos ofrece Internet. Correo Electrónico. Chat. FTP. Foros. Mensajería. Protocolo. Breve introducción

Más detalles

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN INTRANET DE UNA EMPRESA Autor: Burgos González, Sergio. Director: Zaforas de Cabo, Juan. Entidad colaboradora: Colegio de Ingenieros del ICAI. RESUMEN DEL PROYECTO El proyecto consiste en el desarrollo

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Antes de analizar lo que es un servidor Web y llevara a cabo su instalación, es muy importante identificar diferentes elementos involucrados

Más detalles

Tema 2: Introducción a Android

Tema 2: Introducción a Android Tema 2: Introducción a Android Android Android es un sistema operativo basado en el Kernel de Linux diseñado principalmente para dispositivos móviles con pantalla táctil. Android Fue desarrollado originalmente

Más detalles

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS ARCHIVOS ANEXOS Son los documentos, hojas de cálculo o cualquier archivo que se anexa a las carpetas, subcarpetas, hallazgos u otros formularios de papeles de trabajo. Estos archivos constituyen la evidencia

Más detalles

CAPÍTULO 1 Instrumentación Virtual

CAPÍTULO 1 Instrumentación Virtual CAPÍTULO 1 Instrumentación Virtual 1.1 Qué es Instrumentación Virtual? En las últimas décadas se han incrementado de manera considerable las aplicaciones que corren a través de redes debido al surgimiento

Más detalles

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema Capítulo2 Planteamientodelproblema 38 2.1Antecedentesycontextodelproyecto En lo que respecta a los antecedentes del proyecto, se describe inicialmente el contexto donde se utiliza el producto de software.

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

Preguntas y respuestas sobre el cifrado de la información personal. La guía para aprender a cifrar tu información

Preguntas y respuestas sobre el cifrado de la información personal. La guía para aprender a cifrar tu información Guía de Cifrado Preguntas y respuestas sobre el cifrado de la información personal La guía para aprender a cifrar tu información 2 Qué es lo que estamos cuidando? A través del cifrado cuidamos de fotos,

Más detalles

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN 3.3 Aplicaciones Definición de Aplicación (Application). Programa informático que permite a un usuario utilizar una computadora con un fin específico. Las

Más detalles

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 FAMILIA PROFESIONAL: INFORMATICA Y COMUNICACIONES MATERIA: 28. DESARROLLO WEB EN ENTORNO SERVIDOR CURSO: 2º DE CFGS DESARROLLO DE APLICACIONES

Más detalles

5.1. Qué es Internet? controla todo el sistema, pero está conectado de tal manera que hace

5.1. Qué es Internet? controla todo el sistema, pero está conectado de tal manera que hace 5. Internet 5.1. Qué es Internet? Internet es una red mundial de equipos que se comunican usando un lenguaje común. Es similar al sistema telefónico internacional: nadie posee ni controla todo el sistema,

Más detalles

Servicio de VPN de la Universidad de Salamanca

Servicio de VPN de la Universidad de Salamanca Servicio de VPN de la Universidad de Salamanca Descripción del Servicio El servicio de VPN de la Universidad de Salamanca permite el acceso a recursos internos de la misma desde cualquier acceso a Internet

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

GUÍA BÁSICA USUARIO MOODLE 2.6

GUÍA BÁSICA USUARIO MOODLE 2.6 GUÍA BÁSICA USUARIO MOODLE 2.6 Esta guía representa los pasos a seguir por el alumno desde la aceptación en un curso Moodle hasta su posterior utilización, pero antes de explicar la forma de acceder y

Más detalles

Componentes de Integración entre Plataformas Información Detallada

Componentes de Integración entre Plataformas Información Detallada Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Información del Producto: XenData X2500 LTO-6 Digital Video Archive System

Información del Producto: XenData X2500 LTO-6 Digital Video Archive System Información del Producto: XenData X2500 LTO-6 Digital Video Archive System Actualizado: 26 de marzo de 2013 Presentación El sistema XenData X2500 incluye el software XenData6 Workstation que ofrece funcionalidades

Más detalles

Enlace web remoto a travez de SSh Juan Badilla Riquelme Anibal Espinoza Moraga Cesar Reyes Pino

Enlace web remoto a travez de SSh Juan Badilla Riquelme Anibal Espinoza Moraga Cesar Reyes Pino Redes de Computadores I Enlace web remoto a travez de SSh Juan Badilla Riquelme Anibal Espinoza Moraga Cesar Reyes Pino Introducción Redes de Computadores I Es trabajo tiene el fin de entregar la información

Más detalles

Guía de uso del Cloud Datacenter de acens

Guía de uso del Cloud Datacenter de acens guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar

Más detalles

Hacemos que tu negocio se mueva. Plataforma de ventas. www.movilidapp.com. 2014 movilidapp

Hacemos que tu negocio se mueva. Plataforma de ventas. www.movilidapp.com. 2014 movilidapp Hacemos que tu negocio se mueva Plataforma de ventas www.movilidapp.com 2014 movilidapp NUESTRA PLATAFORMA DE VENTAS Nuestra plataforma de ventas permite gestionar la realización de pedidos de sus productos

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS 5 ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS Contenido: 5.1 Conceptos Generales Administración de Bases de Datos Distribuidas 5.1.1 Administración la Estructura de la Base de Datos 5.1.2 Administración

Más detalles

Ayuda de Symantec pcanywhere Web Remote

Ayuda de Symantec pcanywhere Web Remote Ayuda de Symantec pcanywhere Web Remote Conexión desde un navegador web Este documento incluye los temas siguientes: Acerca de Symantec pcanywhere Web Remote Protección de la sesión de Web Remote Formas

Más detalles

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor. Procesamiento del lado del servidor La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el

Más detalles

CAPITULO I FORMULACION DEL PROBLEMA

CAPITULO I FORMULACION DEL PROBLEMA CAPITULO I FORMULACION DEL PROBLEMA TITULO DESCRIPTIVO DEL PROYECTO. Implementación de un servidor proxy para el control de tráfico de la red y gestión de los servicios de Internet en los centros de cómputo

Más detalles

SIEWEB. La intranet corporativa de SIE

SIEWEB. La intranet corporativa de SIE La intranet corporativa de SIE por ALBA Software Acceso a los servicios SIE desde páginas Web para los usuarios de sistema *. Administración del Sistema (cuentas de usuarios, permisos, servicios, etc...)

Más detalles

Servinómina. Servicio de Visualización de Nóminas. (Servinómina) Agosto de 2013. Página 1 de 8 MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS

Servinómina. Servicio de Visualización de Nóminas. (Servinómina) Agosto de 2013. Página 1 de 8 MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS Servinómina Agosto de 2013 Página 1 de 8 ÍNDICE 1 INTRODUCCIÓN... 3 2 SERVINÓMINA... 3 3 OBSERVACIONES... 3 4 CARACTERÍSTICAS Y FUNCIONAMIENTO... 3 4.1 SEGURIDAD... 4 4.2 SERVIDORES COMPARTIDOS... 4 4.3

Más detalles

A.1. Definiciones de datos en SQL

A.1. Definiciones de datos en SQL A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE

Más detalles

Producto. Información técnica y funcional. Versión 2.8

Producto. Información técnica y funcional. Versión 2.8 Producto Información técnica y funcional Versión 2.8 1 Índice: Tema Pág. Introducción a WOLOM 3 Diagrama de la solución WOLOM 3 Principales funciones de WOLOM 4 Módulos que componen WOLOM 4 WM: Wolom Maquetador

Más detalles

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW):

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW): INFORMÁTICA IE MÓDULO INTERNET Términos a conocer y conceptos básicos World Wide Web (WWW): Digamos, simplemente, que es un sistema de información, el sistema de información propio de Internet. Sus características

Más detalles

Información de Producto:

Información de Producto: Windows Server 2008 Foundation La nueva tecnología rentable de Windows Server 2008 Foundation La tecnología confiable y comprobada de Windows Server Foundation proporciona una base para ejecutar las aplicaciones

Más detalles

PROCEDIMIENTO PARA LA REALIZACION DE COPIAS DE SEGURIDAD (BACKUP)

PROCEDIMIENTO PARA LA REALIZACION DE COPIAS DE SEGURIDAD (BACKUP) Aprobado: 29/09/2014 Página: 1 de 6 1. OBJETIVO Garantizar el resguardo en forma segura de toda la información digital, que dentro del desarrollo de las funciones se considere documental e importante y

Más detalles

DESARROLLADOR ANDROID INTRODUCCIÓN ANDROID. Ing. Marco Antonio Toscano Freire mtoscano@matoosfe.com tw: martosfre

DESARROLLADOR ANDROID INTRODUCCIÓN ANDROID. Ing. Marco Antonio Toscano Freire mtoscano@matoosfe.com tw: martosfre DESARROLLADOR ANDROID INTRODUCCIÓN ANDROID Ing. Marco Antonio Toscano Freire mtoscano@matoosfe.com tw: martosfre Introducción Aplicaciones Móbiles Desventajas Tanto las pantallas como teclados son demasiado

Más detalles

CONCLUSIONES 155 A través de cada uno de los capítulos del presente documento se han enumerado una serie herramientas de seguridad que forman parte del sistema de defensa de una red y que, controlan su

Más detalles

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

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

Más detalles

PAG. 1. Administración Remota

PAG. 1. Administración Remota PAG. 1 Administración Remota. PAG. 2 Tabla de Contenido Objetivo 3 Introducción 4 Herramientas de Administración Remota 5 Terminal Services 5 Remote Desktop Connection 5 Computer Management 6 Telnet 6

Más detalles

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Maxpho Commerce 11 Gestión CSV Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Índice general 1 - Introducción... 3 1.1 - El archivo CSV... 3 1.2 - Módulo CSV en Maxpho... 3 1.3 - Módulo CSV

Más detalles

Bases de datos: Sistemas de bases de datos:

Bases de datos: Sistemas de bases de datos: Bases de datos: Sistemas de bases de datos: Un sistema de bases de datos es básicamente un sistema para archivar en computador, es decir, es un sistema computarizado cuyo propósito general es mantener

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

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

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

Más detalles

Arquitectura del sistema operativo GNU/Linux. Luis Eduardo Sepúlveda R.

Arquitectura del sistema operativo GNU/Linux. Luis Eduardo Sepúlveda R. Arquitectura del sistema operativo GNU/Linux Luis Eduardo Sepúlveda R. Núcleo de un sistema operativo. Funciones más importantes: Administración de la memoria. Administración de los procesos Control de

Más detalles

Plan de Trabajo en Verano de INFORMÁTICA CUARTO ESO. Departamento de Tecnología curso 2014-2015

Plan de Trabajo en Verano de INFORMÁTICA CUARTO ESO. Departamento de Tecnología curso 2014-2015 Plan de Trabajo en Verano de INFORMÁTICA CUARTO ESO Departamento de Tecnología curso 2014-2015 Este dossier contiene los siguientes documentos de tu interés: Batería de actividades por unidad didáctica

Más detalles

Información sobre seguridad

Información sobre seguridad Información sobre seguridad SMART kapp incluye características de protección de datos diseñadas para mantener el contenido controlador de forma predecible. En esta página se explican las características

Más detalles

CAPÍTULO 3 Servidor de Modelo de Usuario

CAPÍTULO 3 Servidor de Modelo de Usuario CAPÍTULO 3 Servidor de Modelo de Usuario Para el desarrollo del modelado del estudiante se utilizó el servidor de modelo de usuario desarrollado en la Universidad de las Américas Puebla por Rosa G. Paredes

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

La plataforma educativa Helvia.

La plataforma educativa Helvia. La plataforma educativa HELVIA Autores: Begoña Laínez Sanz, DNI: 31336591B José Javier Álvarez García, DNI: 31666085F Mª de los Ángeles Vilches Amado, DNI: 75744033L Juana María Álvarez Jiménez, DNI: 32042323B

Más detalles

SISTEMAS DE INFORMACIÓN II TEORÍA

SISTEMAS DE INFORMACIÓN II TEORÍA CONTENIDO: EL PROCESO DE DISEÑO DE SISTEMAS DISTRIBUIDOS MANEJANDO LOS DATOS EN LOS SISTEMAS DISTRIBUIDOS DISEÑANDO SISTEMAS PARA REDES DE ÁREA LOCAL DISEÑANDO SISTEMAS PARA ARQUITECTURAS CLIENTE/SERVIDOR

Más detalles