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: 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

Servidores web. Qué es un servidor web? Tipos de servidores. Lic. Lorena Bernis

Servidores web. Qué es un servidor web? Tipos de servidores. Lic. Lorena Bernis Servidores web Qué es un servidor web? Tipos de servidores. Lic. Lorena Bernis Servidores web 2 SERVIDOR En informática, un servidor es un tipo de software que realiza ciertas tareas en nombre de los usuarios.

Más detalles

GLOSARIO DE TERMINOS

GLOSARIO DE TERMINOS GLOSARIO DE TERMINOS A Aplicaciones Legacy.- Conjunto de aplicaciones desarrolladas o implementadas en plataformas de sistemas anteriores o antiguos. B Bases de Datos.- Organización y conservación de datos

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

Curso de Android con Java

Curso de Android con Java Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1 Este es un tiempo único para el mundo de los celulares, en particular de los Smartphones. Este tipo de dispositivos

Más detalles

Poder Judicial de Tucumán Año 2013

Poder Judicial de Tucumán Año 2013 Internet y Correo electrónico El presente instructivo corresponde a una guía básica para el manejo de los programas y para la adquisición de conceptos en relación a estos utilitarios. No obstante ello,

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

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

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

Datos del Profesor: Ing. Jesús Vílchez Sandoval CIP 129615 email:javs2112@gmail.com http://jesusvilchez.wordpress.com móvil: (51)99 407*1449 / (51)9

Datos del Profesor: Ing. Jesús Vílchez Sandoval CIP 129615 email:javs2112@gmail.com http://jesusvilchez.wordpress.com móvil: (51)99 407*1449 / (51)9 Datos del Profesor: Ing. Jesús Vílchez Sandoval CIP 129615 email:javs2112@gmail.com http://jesusvilchez.wordpress.com móvil: (51)99 407*1449 / (51)9 9368 0094 Ing. Jesús Vílchez Sandoval PLATAFORMAS LAMP

Más detalles

Introducción a las bases de datos

Introducción a las bases de datos Introducción a las bases de datos Juan Ignacio Rodríguez de León Abstract Aplicaciones de los sistemas de bases de datos. Sistemas de bases de datos frente a sistemas de archivos. Visión de los datos.

Más detalles

Antes de imprimir este documento piense en el medio ambiente!

Antes de imprimir este documento piense en el medio ambiente! Versión 1.0 Página 1 de 14 1. OBJETIVO: Suministrar la metodología que se aplicará para la estimación de esfuerzo para los desarrollos nuevos en el ICBF, para lo cual se detallan los aspectos a tener en

Más detalles

LA ARQUITECTURA TCP/IP

LA ARQUITECTURA TCP/IP LA ARQUITECTURA TCP/IP Hemos visto ya como el Modelo de Referencia de Interconexión de Sistemas Abiertos, OSI-RM (Open System Interconection- Reference Model) proporcionó a los fabricantes un conjunto

Más detalles

INTRODUCCION A LAS BASES DE DATOS ESPACIALES

INTRODUCCION A LAS BASES DE DATOS ESPACIALES INTRODUCCION A LAS BASES DE DATOS ESPACIALES Índice Introducción Qué es un SIG? Arquitectura de un SIG La información n en un SIG Uso y aplicación n de los SIG Bases de datos Introducción Antecedentes:

Más detalles

Unidad 1. Introducción a los conceptos de Bases de Datos

Unidad 1. Introducción a los conceptos de Bases de Datos Unidad 1 Introducción a los conceptos de Bases de Datos 1.1 Definición de Base de Datos Dato: Conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos. Información:

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

FileMaker 11. Guía ODBC y JDBC

FileMaker 11. Guía ODBC y JDBC FileMaker 11 Guía ODBC y JDBC 2004-2010 FileMaker, Inc. Reservados todos los derechos. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker es una marca comercial de FileMaker,

Más detalles

SEGURIDAD EN REDES. NOMBRE: Daniel Leonardo Proaño Rosero. TEMA: SSH server

SEGURIDAD EN REDES. NOMBRE: Daniel Leonardo Proaño Rosero. TEMA: SSH server SEGURIDAD EN REDES NOMBRE: Daniel Leonardo Proaño Rosero TEMA: SSH server SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve

Más detalles

INTRODUCCIÓN AL WEB. Pag. 1 de 10

INTRODUCCIÓN AL WEB. Pag. 1 de 10 INTRODUCCIÓN AL WEB La World Wide Web o simplemente WWW o Web es uno de los métodos más importantes de comunicación que existe en Internet. Consiste en un sistema de información basado en Hipertexto (texto

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

Introducción. Campos de Aplicación SGBD. Índice. Aplicaciones Representativas. Aplicaciones Representativas

Introducción. Campos de Aplicación SGBD. Índice. Aplicaciones Representativas. Aplicaciones Representativas SGBD Base de Un Sistema Gestor de consiste en: Datos Una colección de datos interrelacionados Un conjunto de programas para acceder a los datos Objetivo Principal de un SGBD: Proporcionar una forma práctica

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 Módulo 1. Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 1 CONTENIDO Tema 1. Introducción

Más detalles

Acceso a bases de datos MySQL con PHP

Acceso a bases de datos MySQL con PHP GESTIÓN Y ADMINISTRACIÓN WEB Acceso a bases de datos MySQL con PHP Ing. CIP Fabián Silva Alvarado fsilvasys@hotmail.com DEFINICIÓN DE BASE DE DATOS Base de Datos es un conjunto de datos relacionados entre

Más detalles

Introducción a Bases de Datos

Introducción a Bases de Datos de a M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea andrea@udec.cl II Semestre - 2007 y del s: Sistemas de y del s: de y del s: Objetivos de la Unidad Dar a conocer las características,

Más detalles

MÁSTER ONLINE EN ADMINISTRACIÓN LINUX

MÁSTER ONLINE EN ADMINISTRACIÓN LINUX MÁSTER ONLINE EN ADMINISTRACIÓN LINUX 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

Más detalles

ÍNDICE. Introducción... Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1

ÍNDICE. Introducción... Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1 Introducción... XIII Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1 Novedades y mejoras en SQL Server 2008 R2... 1 Novedades... 1 Mejoras... 3 Ediciones y componentes en SQL Server

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

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

Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL

Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL 1. Conexión con la Base de Datos: se debe realizar a partir de algún programa que implemente el protocolo SSH (Secure Shell), a partir

Más detalles

BASES DE DATOS. 1.1 Funciones de un DBMS

BASES DE DATOS. 1.1 Funciones de un DBMS BASES DE DATOS Un DBMS, son programas denominados Sistemas Gestores de Base de Datos, abreviado SGBD, en inglés Data Base Management System (DBMS) que permiten almacenar y posteriormente acceder a los

Más detalles

FileMaker 12. Guía ODBC y JDBC

FileMaker 12. Guía ODBC y JDBC FileMaker 12 Guía ODBC y JDBC 2004-2012 FileMaker, Inc. Reservados todos los derechos. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker y Bento son marcas comerciales de

Más detalles

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO LENGUAJE DE CONSULTA ESTRUCTURADO - SQL 1. TIPOS DE DATOS 2. COMANDOS DDL 2.1 Créate 2.2 Drop 2.3 Alter 3. COMANDOS DML 3.1 Select 3.2 Insert 3.3 Update 3.4 Delete 4. CLAUSULAS 4.1 From 4.2 Where 4.3 Having

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

MÓDULO: SERVICIOS E RED. Nombre: Curso: 2º SMR (9-6-2011) [Examen Final Junio]

MÓDULO: SERVICIOS E RED. Nombre: Curso: 2º SMR (9-6-2011) [Examen Final Junio] MÓDULO: SERVICIOS E RED Nombre: Curso: 2º SMR (9-6-2011) [Examen Final Junio] PARTE 1: Responde las siguientes preguntas tipo TEST. Solo hay una respuesta correcta. Dos respuestas incorrectas anulan una

Más detalles

FileMaker 14. Guía ODBC y JDBC

FileMaker 14. Guía ODBC y JDBC FileMaker 14 Guía ODBC y JDBC 2004-2015 FileMaker, Inc. Reservados todos los derechos. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker y FileMaker Go son marcas comerciales

Más detalles

Capítulo 2: Servidores

Capítulo 2: Servidores Técnico en Repatación de PC y Redes (intensivo) Capítulo 2: Servidores Definición Como su nombre lo indica, son los dispositivos de red que brindan un servicio a otros dispositivos (clientes). En general

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

MATERIA : TECNOLOGIA WEB TEMA : SERVIDORES. DOCENTE : Lic. Cynthia Rodriguez Canaviri

MATERIA : TECNOLOGIA WEB TEMA : SERVIDORES. DOCENTE : Lic. Cynthia Rodriguez Canaviri ESCUELA MILITAR DE INGENIERIA MCAL. ANTONIO JOSE DE SUCRE BOLIVIA MATERIA : TECNOLOGIA WEB TEMA : SERVIDORES DOCENTE : Lic. Cynthia Rodriguez Canaviri ALUMNO : Sof. Incl. Marco Pinto Mencias Sof. Incl.

Más detalles

Tema 1: Introducción. Generador del proyecto GNU, Richard Stallman es principalmente conocido por el establecimiento de un.

Tema 1: Introducción. Generador del proyecto GNU, Richard Stallman es principalmente conocido por el establecimiento de un. Tema 1: Introducción Objetivos: Conocimiento de la historia y filosofía de GNU/LINUX para que el estudiante entienda cual es el propósito de la utilización de un sistema operativo libre de licenciamiento.

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 17 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

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

CONTENIDOS MÍNIMOS Y CRITERIOS DE EVALUACIÓN INFORMÁTICA 1º BACHILLERATO

CONTENIDOS MÍNIMOS Y CRITERIOS DE EVALUACIÓN INFORMÁTICA 1º BACHILLERATO CONTENIDOS MÍNIMOS Y CRITERIOS DE EVALUACIÓN INFORMÁTICA 1º BACHILLERATO Contenidos 1. Internet y redes sociales. -La información y la comunicación como fuentes de comprensión y transformación del entorno

Más detalles

Asesoría y Servicios Integrales en Cómputo La Solución con Linux. ASIC-LANServer

Asesoría y Servicios Integrales en Cómputo La Solución con Linux. ASIC-LANServer ASIC-LANServer Descripción general Es un sistema dirigido a PYMES haciendo posible que cualquier empresa pueda contar con un servidor PODEROSO, FLEXIBLE y SEGURO a BAJO COSTO con todos los servicios y

Más detalles

OpenText Exceed ondemand

OpenText Exceed ondemand OpenText Exceed ondemand Acceso a aplicaciones empresariales confiable y seguro O pentext Exceed ondemand es la solución para el acceso seguro a las aplicaciones gestionadas. Ella permite que las empresas

Más detalles

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos.

Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos. Contenidos Sistemas operativos Tema 3: Estructura del sistema operativo Componentes típicos del SO Servicios del SO Llamadas al sistema Programas del sistema El núcleo o kernel Modelos de diseño del SO

Más detalles

FileMaker 13. Guía ODBC y JDBC

FileMaker 13. Guía ODBC y JDBC FileMaker 13 Guía ODBC y JDBC 2004-2013 FileMaker, Inc. Reservados todos los derechos. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker y Bento son marcas comerciales de

Más detalles

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Página 1 de 21 CUALIFICACIÓN DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC154_3 Versión 5 Situación RD 1087/2005 Actualización

Más detalles

[CASI v.0110] Pág. 1

[CASI v.0110] Pág. 1 I. DATOS INFORMATIVOS II. SUMILLA Carrera Especialidad Curso Código : T-INF105 Ciclo : Segundo Requisitos : Ninguno Duración : 12 Semanas Horas Semana : 06 horas Versión : v.0110 : COMPUTACIÓN E INFORMATICA

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

U2. Introducción al desarrollo de aplicaciones móviles Smartphone y Android Desarrollo de Aplicaciones III TIC-UTSV Enero 2015 I.S.C.

U2. Introducción al desarrollo de aplicaciones móviles Smartphone y Android Desarrollo de Aplicaciones III TIC-UTSV Enero 2015 I.S.C. U2. Introducción al desarrollo de aplicaciones móviles Smartphone y Android Desarrollo de Aplicaciones III TIC-UTSV Enero 2015 I.S.C. Rogelio Vázquez Hernández Smartphone Termino utilizado para referirse

Más detalles

Unicenter Remote Control Versión 6.0

Unicenter Remote Control Versión 6.0 D A T A S H E E T Unicenter Remote Control Versión 6.0 Unicenter Remote Control es una aplicación altamente fiable y segura para controlar y dar soporte a sistemas Windows remotos. Puede mejorar significativamente

Más detalles

La inscripción sólo se realiza rellenando en Internet la ficha de inscripción:

La inscripción sólo se realiza rellenando en Internet la ficha de inscripción: Nombre: Certified IT Professional: Administración de Sistemas Operativos Nº horas: 280 Nº alum.: 16 Inicio: 19/01/2015 Fin: 21/05/2015 Horario: 9-13h Lugar: ZARAGOZA La inscripción sólo se realiza rellenando

Más detalles

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Unidad Académica Base de Datos SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS Integrantes: Fidel Gil

Más detalles

Escritorios Remotos 1. RDP

Escritorios Remotos 1. RDP Escritorios Remotos 1. RDP RDP (Remote Desktop Protocol = Protocolo de Acceso a un Escritorio Remoto) es un protocolo desarrollado por Microsoft que permite manipular, de manera remota, el escritorio de

Más detalles

Evaluar el rendimiento de los servicios de comunicaciones. ANEXO CLIV

Evaluar el rendimiento de los servicios de comunicaciones. ANEXO CLIV 746 Miércoles 5 octubre 2005 Suplemento del BOE núm. 238 CE2.1 Identificar los distintos sistemas de archivo utilizables en un dispositivo de almacenamiento dado para optimizar los procesos de registro

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

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

Servidores-Protocolos y puertos. (Versión: 26-6-12)

Servidores-Protocolos y puertos. (Versión: 26-6-12) Servidores-Protocolos y puertos. (Versión: 26-6-12) Qué es un servidor?. En informática, un servidor es una computadora que, formando parte de una red, provee servicios a otras computadoras denominadas

Más detalles

Como manejador de base de datos elegimos utilizar Absolute Database, que es un

Como manejador de base de datos elegimos utilizar Absolute Database, que es un APÉNDICE E Manejador de base de datos ABSOLUTE DATABASE Como manejador de base de datos elegimos utilizar Absolute Database, que es un componente de Delphi para manejar base de datos, muy poderoso y fácil

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

TEMA 2. INTRODUCCIÓN A MYSQL

TEMA 2. INTRODUCCIÓN A MYSQL 1 TEMA 2. INTRODUCCIÓN A MYSQL 1. Introducción 2. Características principales de MySQL 3. MySQL y el código abierto 4. Instalación de MySQL 5. Conexión y desconexión al servidor 6. Entrada de comandos

Más detalles

Capitulo VIII. Multimedios. En informática, multimedios es la forma de presentar información que emplea

Capitulo VIII. Multimedios. En informática, multimedios es la forma de presentar información que emplea Capitulo VIII Multimedios. En informática, multimedios es la forma de presentar información que emplea una combinación de texto, sonido, imágenes, animación y vídeo. Entre las aplicaciones informáticas

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 6. Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 6. Actualización Página 1 de 19 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 6 Situación Contraste externo Actualización

Más detalles

- Telnet, Rlogin, SSH - X-Terminal - Escritorio remoto VNC - Terminal Server - Acceso remoto mediante interfaz web

- Telnet, Rlogin, SSH - X-Terminal - Escritorio remoto VNC - Terminal Server - Acceso remoto mediante interfaz web - Telnet, Rlogin, SSH - X-Terminal - Escritorio remoto VNC - Terminal Server - Acceso remoto mediante interfaz web Los Servicios de Escritorio Remoto (del inglés Remote Desktop Services), antiguamente

Más detalles

3 Consultas y subconsultas

3 Consultas y subconsultas 3 Consultas y subconsultas En SQL, la sentencia SELECT permite escribir una consulta o requerimiento de acceso a datos almacenados en una base de datos relacional. Dichas consultas SQL van desde una operación

Más detalles

SERVICIO NACIONAL DE APRENDIZAJE SENA

SERVICIO NACIONAL DE APRENDIZAJE SENA SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE SISTEMA INTEGRADO DE GESTIÓN Proceso Gestión de la Formación Profesional Integral Procedimiento Ejecución de la Formación Profesional Integral

Más detalles

Visión general y entorno de desarrollo

Visión general y entorno de desarrollo CAPÍTULO 1. Visión general y entorno de desarrollo La telefonía móvil está cambiando la sociedad actual de una forma tan significativa como lo ha hecho Internet. Esta revolución no ha hecho más que empezar,

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

Apéndice A Herramientas utilizadas

Apéndice A Herramientas utilizadas Apéndice A Herramientas utilizadas A.1 Java Media Framework El Java Media Framework (JMF) es una interfaz para el desarrollo de aplicaciones (API) e incorpora el manejo de audio y video en el lenguaje

Más detalles

ANEXO No. 1 UNIVERSIDAD FRANCISCO GAVIDIA ENCUESTA DE OPINION

ANEXO No. 1 UNIVERSIDAD FRANCISCO GAVIDIA ENCUESTA DE OPINION ANEXOS ANEXO No. 1 UNIVERSIDAD FRANCISCO GAVIDIA ENCUESTA DE OPINION DATOS DE CLASIFICACION Carrera: Nivel de Estudios: ( ) Primer Año ( ) Segundo Año ( ) Tercer Año ( ) Cuarto Año ( ) Quinto Año Sexo:

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

1.- REDES E INTERNET TIPOS DE REDES COMUNICACIÓN POR INTERNET PROTOCOLO IP PROTOCOLO TCP

1.- REDES E INTERNET TIPOS DE REDES COMUNICACIÓN POR INTERNET PROTOCOLO IP PROTOCOLO TCP 1.- REDES E INTERNET TIPOS DE REDES LAN (Local Area Network). Enlazan ordenadores dentro de un área limitada: un departamento, una oficina, un edificio, etc La forma más sencilla para crear una LAN es

Más detalles

INFORME DE ACCESO REMOTO SEGURO CON PROTECCIÓN WAF WEB APPLICATION FIREWALL. Universidad de Alcalá Departamento de Ciencias de la Computación

INFORME DE ACCESO REMOTO SEGURO CON PROTECCIÓN WAF WEB APPLICATION FIREWALL. Universidad de Alcalá Departamento de Ciencias de la Computación LABORATORIO INFORME DE ACCESO REMOTO SEGURO CON PROTECCIÓN WAF WEB APPLICATION FIREWALL SonicWALL SRA 4200 Universidad de Alcalá Departamento de Ciencias de la Computación SonicWALL SRA 4200 SonicWALL

Más detalles

Tema 33. El lenguaje SQL

Tema 33. El lenguaje SQL Tema 33. El lenguaje SQL Introducción... 1 Modos de uso... 2 Ejecución de las sentencias SQL... 2 Instrucciones DDL Data Definition Language-... 3 Instrucciones DML Data Manipulation Language-... 4 Instrucciones

Más detalles

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. BASES DE DATOS Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. La creación de una base de datos debe ser realizada cuidadosamente procurando

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Facultad de Ingeniería Redes de Datos Práctica 11 Capa6 Modelo OSI. PRÁCTICA 11 SSH: Secure Shell

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Facultad de Ingeniería Redes de Datos Práctica 11 Capa6 Modelo OSI. PRÁCTICA 11 SSH: Secure Shell 1.- Objetivos de Aprendizaje El alumno: UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO PRÁCTICA 11 SSH: Secure Shell Al finalizar la práctica, conocerá la importancia de utilizar el protocolo SSH (Secure Shell)

Más detalles

INDICE Primera Parte. Panorámica general de SQL 2. Rápido repaso de SQL 3. SQL en Perspectiva

INDICE Primera Parte. Panorámica general de SQL 2. Rápido repaso de SQL 3. SQL en Perspectiva INDICE Prólogo XXIII Por qué este libro es para usted XXVII Primera Parte. Panorámica general de SQL 1 1. Introducción 3 El lenguaje SQL 3 El papel de SQL 6 Características y beneficios de SQL 7 Independencia

Más detalles

Capitulo 1: Plataforma Android

Capitulo 1: Plataforma Android Capitulo 1: Plataforma Android Elaborado por: Gary Briceño http://gary.pe http://gary.pe 1 Temario 1. Android 2. Evolución 3. Arquitectura Android 4. Paquetes de Trabajo 5. Android y Java http://gary.pe

Más detalles

Qué es el protocolo SSH y cómo configurarlo para mejorar la seguridad de acceso a los servidores Linux

Qué es el protocolo SSH y cómo configurarlo para mejorar la seguridad de acceso a los servidores Linux Qué es el protocolo SSH y cómo configurarlo para mejorar la seguridad de acceso a los servidores Linux Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com Cuando uno contrata

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

BANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1

BANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1 BANCO DE PREGUNTAS PARA EVALUACIÓN DE CONOCIMIENTOS DEL CONCURSO DE MÉRITOS Y OPOSICIÓN EXPERTO EN DESARROLLO DE SISTEMAS 1 1. Cuáles de los siguientes enunciados son declaraciones válidas? 2. Cuál de

Más detalles

IVista: es la interfaz con la que el Presentador se comunica con la vista.

IVista: es la interfaz con la que el Presentador se comunica con la vista. Capítulo 3 MODELO DE DISEÑO 3.1 Arquitectura Modelo-Vista-Presentador La arquitectura Modelo-Vista-Presentador (MVP) [11] separa el modelo, la presentación y las acciones basadas en la interacción con

Más detalles

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 16 CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC304_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

Manual de referencia de HP Web Jetadmin Database Connector Plug-in

Manual de referencia de HP Web Jetadmin Database Connector Plug-in Manual de referencia de HP Web Jetadmin Database Connector Plug-in Aviso de copyright 2004 Copyright Hewlett-Packard Development Company, L.P. Prohibida la reproducción, adaptación o traducción sin autorización

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

ADMINISTRACION DE BASES DE DATOS EN ORACLE

ADMINISTRACION DE BASES DE DATOS EN ORACLE SQL LENGUAJE ESTRUCTURADO DE CONSULTA El nacimiento del lenguaje SQL data de 1970 cuando E. F. Codd publica su libro: "Un modelo de datos relacional para grandes bancos de datos compartidos". Ese libro

Más detalles

Hoja de datos: Virtualización de puntos finales Symantec Endpoint Virtualization Suite Optimización dinámica del espacio de trabajo

Hoja de datos: Virtualización de puntos finales Symantec Endpoint Virtualization Suite Optimización dinámica del espacio de trabajo Hoja de datos: Virtualización de puntos finales Optimización dinámica del espacio de trabajo Descripción general es una solución flexible y efectiva que se centra en la productividad del usuario, independientemente

Más detalles

Historia de revisiones

Historia de revisiones Binary Rain Glosario Versión 1.1 Historia de revisiones Fecha Versión Descripción Autor 17/08/2012 1.0 Creación del documento Carolina Trias 18/08/2012 1.1 Revisado y corregido por SQA Mercedes Marzoa

Más detalles

! " # $!% & % '" ()!*++,

!  # $!% & % ' ()!*++, !" # $!%&%'" ()!*++, Qué es Linux? Antecedentes. Licencia. Características. Entorno de Trabajo. Estructura General. Sistema de Ficheros. Tipos. Path. Permisos de Acceso. Distribuciones Comerciales. Elementos

Más detalles

Índice de contenido. Página 1 de 14

Índice de contenido. Página 1 de 14 Índice de contenido CURSO DE PREPARACIÓN PARA EL EXAMEN DE LPI 101...3 CURSO DE PREPARACIÓN PARA EL EXAMEN DE LPI 102...5 CERTIFICACIÓN LINUX NIVEL JUNIOR LPCI (1)...7 CURSO DE PREPARACIÓN PARA EL EXAMEN

Más detalles

Administración avanzada de GNU/Linux

Administración avanzada de GNU/Linux Administración avanzada de GNU/Linux XP07/M2103/02279 FUOC XP07/M2103/02279 Administración avanzada de GNU/Linux Ingeniero superior y doctor en Informática por la UAB. Profesor de los Estudios de Informática,

Más detalles

Introduccion a la plataforma Android

Introduccion a la plataforma Android Introduccion a la plataforma Android Felipe A. Besoaín Pino fbesoain@gmail.com 22-05-2009 Resumen Las características y usos que nos proveen los dispositivos móviles en los últimos años, han provocado

Más detalles

Tipos de datos de campo disponibles en Access (MDB)

Tipos de datos de campo disponibles en Access (MDB) Tipos de datos de campo disponibles en Access (MDB) Nota La información recogida en este tema sólo se aplicará a bases de datos de Microsoft Access (.mdb). La siguiente lista resume todos los tipos de

Más detalles

Tema 4. SQL. Juan Ignacio Rodríguez de León

Tema 4. SQL. Juan Ignacio Rodríguez de León Tema 4. SQL Juan Ignacio Rodríguez de León Resumen Este tema se centra exclusivamente en el estudio del lenguaje de consultas SQL (Structured Query Language). SQL usa una combinación de álgebra relacional

Más detalles

LINUX. GNU/Linux. Cuatro características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado:

LINUX. GNU/Linux. Cuatro características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado: LINUX GNU/Linux GNU/Linux es un sistema operativo de libre distribución, basado en el kernel Linux creado por Linus Torvalds y los desarrolladores del grupo GNU (Fundación para el software libre encabezada

Más detalles

Sistemas Operativos de red (NOS).

Sistemas Operativos de red (NOS). Sistemas Operativos 4 tareas principales: Proporcionar interfaz: de comando o gráfica. Administrar los dispositivos de hardware en la computadora. Administrar y mantener los sistemas de archivo de disco.

Más detalles

Departamento de Matemáticas IES El señor de Bembibre Curso 2009-2010 CONTENIDOS TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN 1º BTO

Departamento de Matemáticas IES El señor de Bembibre Curso 2009-2010 CONTENIDOS TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN 1º BTO Tecnologías de la información y la comunicación 1º de Bachillerato OBJETIVOS TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN -1º BTO La enseñanza de las Tecnologías de la información y la comunicación

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