Académique Documents
Professionnel Documents
Culture Documents
rea de Informtica
Julio de 2016
Resumen
Actualmente durante el proceso de asignacin de IP en las redes no existe un
patrn predefinido con el que se diferencien los dispositivos mviles de los
dispositivos de escritorio, sin embargo los equipos mviles celulares, tambin
llamados Telfonos inteligentes, poseen una configuracin en su host name, la cual
se tom como referencia a patrones de bsqueda, en el caso de Android es AndroidCdigo, igualmente se aplica para dispositivos con sistema operativo IOS, Windows
Phone, Blackerry. Esta premisa permiti inferir un algoritmo que permita el filtrando
de estos mediante su hostname.
Es as que para alcanzar la meta de desarrollar un algoritmo de bsqueda de
dispositivos mviles nos basamos en la metodologa de desarrollo en cascada la cual
permiti el desarrollo del algoritmo, luego de esto se implement utilizando el
lenguaje JAVA para realizar la codificacin y por ltimo se migr al entorno de
Desarrollo de Android Studio, lo que nos permiti generar la aplicacin objeto de
estudio.
Todo esto nos dio por resultado una aplicacin Android completamente estable,
que realiza la bsqueda de manera eficiente y en poco tiempo, implementando el
algoritmo desarrollado de manera eficiente; las principales aplicacin de este
algoritmo se ven enfocadas en la seguridad de las redes, ya que al poder filtrar
dispositivos
mviles
contribuye
como
herramienta
para
condicionar
el
Introduccin
Los telfonos mviles (Smartphones), han sido sin duda uno de los
protagonistas de la revolucin tecnolgica en las ltimas dcadas y la forma en la
que esta se adopta est descrita por la teora de la difusin de las innovaciones
(Rogers (1962)). Los aspectos sociales en el proceso de adopcin de tecnologa se
estn acelerando con el aumento de la computacin mvil y ubicua, y esto reduce los
ciclos de adopcin.
El uso de estos distintos conceptos abarca como objetivo principal el desarrollo
de un algoritmo para bsqueda de dispositivos, el cual se aplicar en una aplicacin
mvil bajo la plataforma del sistema operativo Android, se pretende que esta realice
un mapeo exitosos de la red local, logrando identificar los dispositivos conectados a
una red especfica.
Dentro del mercado actual de aplicaciones mviles se encuentran varias
aplicaciones que permiten buscar los dispositivos conectados a la red, sin embargo
son software propietario sin fines educativos, a los cuales solo se puede acceder de
manera paga. Sin embargo en aplicaciones de escritorio si se encuentran algunas
inclusiones en este campo, como la empresa Maxim Integrated Products, Inc. que en
el ao 2002 public la documentacin del desarrollo de un algoritmo de bsqueda, el
cual denominaron Wire Search Algorithm o Algoritmo de Bsqueda Alambre, el
cual est basado en rbol binario de bsqueda donde las ramas son seguidas hasta
que un nmero de dispositivo ROM, o de la hoja, se encuentra. La codificacin se
realiz en el lenguaje JAVA y est disponible en su sitio web para su libre
implementacin.
El diseo de esta propuesta, se basa la metodologa de desarrollo en
cascada, el cual es considerado como el enfoque clsico para el ciclo de vida del
desarrollo de sistemas, se puede decir que es un mtodo puro que implica un
desarrollo rgido. Esta es una secuencia de actividades (o etapas) que consisten en el
anlisis de requerimientos, l diseo, la implementacin, la integracin y las pruebas.
La aplicacin de estos mtodos se realizar en pos de obtener un algoritmo de
bsqueda de dispositivos eficiente, que cumpla con los principales requerimientos
funcionales, entre los cuales tenemos una bsqueda de dispositivos en la red,
1
soluciones.
Objetivos: se exponen los objetivos generales y especficos, enfocados en la
Diccionario de Datos.
Materiales y Mtodos: presenta: el entorno de desarrollo, los programas de
objetivos.
Referencias: listado de las referencias bibliogrficas consultadas a travs de
todo el desarrollo.
1.1.3 Middleware
Android
iOS
Windows Phone
Otros
El Middleware para
dispositivos mviles est compuesto por los sistemas operativos, los protocolos de
comunicacin, la seguridad y las bases de datos. Por el lado del servidor existe
tambin un middleware que se contrapone al middleware que corre en el dispositivo
mvil. En el campo de la telefona mvil, Android marca la pauta en los telfonos
inteligentes y tabletas, en la Figura 2 podemos ver la cuota de mercado de sistemas
operativos mviles para el primer trimestre de 2016.
Android tiene la mayor cuota, desde enero 2011, con ms de la mitad del
mercado, experiment un creciente aumento y en solo dos aos (2009 a comienzos de
2011) ha pasado a ser el SO mvil ms utilizado.
1.1.4 Android
6
Direccin IP
Para poder comunicarse en una red, cada equipo debe tener una direccin IP
exclusiva. La direccin IP es el nico identificador que diferencia un equipo de otro en
una red y ayuda a localizar dnde reside ese equipo. Se necesita una direccin IP para
cada equipo y componente de red, como un router, que se comunique mediante
TCP/IP.
La direccin IP identifica la ubicacin de un equipo en la red, al igual que el
nmero de la direccin identifica una casa en una ciudad. Al igual que sucede con la
direccin de una casa especfica, que es exclusiva pero sigue ciertas convenciones, una
direccin IP debe ser exclusiva pero conforme a un formato estndar. Una direccin IP
est formada por un conjunto de cuatro nmeros, cada uno de los cuales puede oscilar
entre 0 y 255.
Al igual que la direccin de una casa tiene dos partes (una calle y un cdigo
postal), una direccin IP tambin est formada por dos partes: el ID de host y el ID de
red. ID de red La primera parte de una direccin IP es el ID de red, que identifica el
segmento de red en el que est ubicado el equipo.
IP Mvil
Las versiones actuales del protocolo de Internet (IP) dan por supuesto que el
punto en el que un sistema se conecta a Internet o a una red es fijo. IP asume tambin
que la direccin IP del sistema identifica la red a la que este est conectado. Los
datagramas que se envan a un sistema se basan en la informacin de ubicacin
contenida en la direccin IP. Muchos protocolos de Internet exigen que la direccin IP
de un nodo no cambie. Si alguno de estos protocolos est activado en un sistema con IP
mvil, sus aplicaciones no funcionarn.
Si un sistema mvil, o nodo mvil, se traslada a una nueva red y su direccin IP
no cambia, la direccin del nodo no refleja el nuevo punto de conexin. En
consecuencia, los protocolos de enrutamiento en vigor no pueden enrutar los datagramas
correctamente al nodo mvil.
IP para mviles permite que un sistema se mueva libremente en Internet.
Tambin le permite moverse libremente en la red de una organizacin manteniendo la
misma direccin permanente. En consecuencia, las comunicaciones no se interrumpen
cuando el usuario cambia el punto de conexin del sistema. En vez de eso, la red se
actualiza con la nueva ubicacin del nodo mvil.
HostName
Un nombre de host es un nombre que se asigna a un equipo, que lo identifica de
forma exclusiva en una red y esto le permite ser direccionado sin usar su IP completa.
Un host es un ordenador que est conectado a una red, generalmente Internet, u otra del
tipo TCP/IP (Transmission Control Protocol / Protocolo de Internet) como una LAN
(red de rea local). Cada host en una red TCP/IP tiene una direccin nica IP, que es un
identificador numrico nico.
Los nombres de host son muy tiles, ya que es mucho ms fcil para los seres
humanos de recordar, que recordar direcciones IP, que pueden contener hasta 12 dgitos
bajo el actual esquema de direccionamiento IPv4 (o un mximo de 32 dgitos
hexadecimales en el IPv6 de prxima generacin). Adems, es una cuestin de sencillez
para los administradores del sistema el asignar nombres de host en una LAN o una red
privada.
11
Los nombres de hosts en redes ms pequeas suelen consistir en una sola palabra
(o palabras) que describa al host y se suele omitir el nombre de dominio. Un nombre de
dominio es un nombre nico que identifica un host en Internet. Por ejemplo, a algunos
de los equipos en el departamento de contabilidad de una pequea empresa, se les
podran asignar nombres de host como 'conta1', 'conta2' y 'conta3'.
Normalmente, cada host tiene un solo nombre. Sin embargo, a menudo se les
permite tener mltiples nombres de hosts.
Hostname en los dispositivos mviles
En el caso de los dispositivos mviles Android, su nombre o hostname, al
tratarse de un dispositivo Linux, posee un valor por defecto (desde la versin Android
2.2) que se estructura de la siguiente manera: android-CDIGO donde CDIGO es
un valor de 16 caracteres hexadecimales. El cdigo corresponde al identificador de
Android (ANDROID_ID), una valor de 64 bits generado aleatoriamente en el primer
arranque del dispositivo mvil y que permanece constante durante toda la vida del
dispositivo, es dedir, hasta que se reinstale o se restablezcan los valores de fbrica.
El nombre del dispositivo mvil, que tambin es empleado como nombre para el
servicio DNS, hace uso del carcter _ (underscore), qu no es un carcter valido
segn el estndar del protocolo DNS y los servicios de resolucin de nombres. A partir
de Android 4.0 se hace uso de un guion - en su lugar. nicamente los dispositivos
mviles Android donde se ha realizado el proceso de rooting permiten la modificacin
del nombre del dispositivo, sin embargo no permite modificar la estructura del ID
(Android-Cdigo), solo el cdigo.
De manera similar se emplea el mismo proceso en los dispositivos Iphone,
Blackberry. Window, iPad. En la figura se puede evidenciar la ocurrencia de estos
patrones en los hostnames de los dispositivos conectados.
12
El modelovistacontrolador (MVC)
Es un patrn de arquitectura de software, que separa los datos y la lgica de
negocio de una aplicacin de la interfaz de usuario y el mdulo encargado de gestionar
los eventos y las comunicaciones. Para ello MVC propone la construccin de tres
componentes distintos que son el modelo, la vista y el controlador, es decir, por un lado
define componentes para la representacin de la informacin, y por otro lado para la
interaccin del usuario.
Este patrn de arquitectura de software se basa en las ideas de reutilizacin de
cdigo y la separacin de conceptos, caractersticas que buscan facilitar la tarea de
desarrollo de aplicaciones y su posterior mantenimiento.
plataforma Android.
Realizar pruebas del algoritmo de bsqueda de dispositivos mviles.
Figura 7. Modelo Cascada Fuente: Pressman, R. 2010. Ingeniera del Software Un Enfoque
Prctico. 7ma ed.
14
1.3.1 Comunicacin
Incluye el inicio del proyecto y la determinacin de los requerimientos, tanto
funcionales como no funcionales.
Requerimientos Funcionales
Requerimientos No funcionales
Disponibilidad: las aplicaciones deben estar disponible las 24 horas del da,
los recursos.
Mantenibilidad: debe estar correctamente documentado para que interesados
futuros puedan hacerle mantenimiento, o bien, agregar funcionalidades. Por otro
lado, la estructuracin del cdigo debe ser consistente.
1.3.2 Planeacin
Se centra en realizar una estimacin del tiempo en el que se desarrollaran las
etapas del proyecto y como se le dar seguimiento.
Tabla 1. Planificacin de Actividades
Actividad
1
15
Semana
4
5
1.3.2 Modelado
Compuesto por el anlisis y el diseo del sistema.
Caso de Uso
Diagrama de Clases
16
Diagrama de Estados
Diseo de la Interfaz
Figura 11. A la derecha interfaz principal, a la izquierda modelo para almacenar los
resultados
17
1.3.4 Construccin
En esta etapa se realiza la codificacin, en el caso de estudio se realiz en el
lenguaje Java.
Desarrollo del Algoritmo
En la inicializacin
RANGO = 254 //Dada que nuestra mascara de red local es
255.255.255.255
IP_red_local= 192.x.y.
ID_Dispositivos; [android,BlackBerry, Iphone, iPod, iPad]
[]Lista_Dispositivos;
[]Lista_Dispositivos_Moviles;
Para obtener el listado de dispositivos conectados a la red
if RANGO <=254 then
if hacerPing(IP_red_local + RANGO) then
agregar a Lista_ Dispositivos
else
RANGO++;
end-if
end-if
Para realizar el filtrado de dispositivos mviles
Desde i=0 hasta tamao_Lista_dispositivos
HostName: obtenerHostNameDispositivo(lista_dispositivos);
if HostName contiene ID_Dispositivos then
ADD to Lista_Dispositivos_Moviles;
else
i++;
end-if
devuelve Lista_Dispositivos_Moviles;
fin-desde
Codificacin
Clase Scan
Mtodo que permite obtener la direccin IP de la red
18
DiscoverRunner(subnet,
254/NUMTHREADS*i,
getMacFromArpCache(a.getHostAddress()),
20
} return foundDev; }
21
1.3.5 Despliegue
Al terminar el diseo y la codificacin se procede a implementar la aplicacin en
un dispositivo mvil tangible y realizar las pruebas necesarias. A continuacin se
muestra el proceso de la implementacin en una Tablet Canaima TRS10.
Figura 13. A la derecha se muestra la ejecucin de la aplicacin, donde muestra los permisos
que requiere la aplicacin. A la izquierda el proceso de instalacin en el dispositivo.
22
Figura 15. A la derecha se muestra la ejecucin en el dispositivo HTC Vivid donde se refleja un
error en el clculo de la direccin IP, luego fue resuelto. A la izquierda el acceso directo a la
aplicacin dentro del men del telfono que demuestra la instalacin exitosa de la app.
23
3. Materiales y Mtodos
Recursos Fsicos
La aplicacin ser desarrollada en un computador que posee las siguientes
caractersticas:
Memoria RAM: 4 GB
Disco Duro: 200 GB
Sistema Operativo: Windows 7 Ultimate 32Bits
Procesador: Intel(R) Core(TM)2 Duo 2.53 GHz de segunda generacin
Memoria RAM: 1 GB
Almacenamiento Interno: 8G
Sistema Operativo: Android 4.4.2 KitKat
Procesador: Intel Atom Z3735F, Quad Core de 1.33Ghz
Recursos Tecnolgicos
El prototipo de la aplicacin va a hacer uso de los siguientes elementos tecnolgicos
con el fin de garantizar un desarrollo hecho con el software ms actualizado posible:
24
25
Manejo de Eventos
26
Por otra parte se usa el protocolo DHCP (mediante la librera de Java llamada
InetAddres), el cual en un determinado caso puede fallar si se cae el servido, pero para
evitar esas fallas en el sistema se usa un try catch para que la aplicacin siempre est en
funcionamiento as ocurra una falla debido a que se produce una excepcin que avisa
que hay un error y corrige la falla correctamente, si esto no se hace se puede presentar
27
un problema a la hora de que se quieran obtener las direcciones IP para poder encontrar
los dispositivos y filtrarlos para poder cifrar los dispositivos conectados en la red, por
eso es necesario el try catch.
Instalacin
Aplicacin Escaner Mvil
1. Trasladamos el archivo app-debug.apk al dispositivo mvil, y ejecutamos el
archivo. En el caso ejemplo el archivo se envi va correo electrnico y luego se
descarg. Ver la siguiente figura.
28
29
3. Se espera unos segundos a que se instale la aplicacin, este tiempo vara segn
el dispositivo.
30
31
5. En caso de elegir cerrar la ventana: para poder iniciar la aplicacin se debe elegir
el icono correspondiente en el men de aplicaciones del dispositivo.
32
33
34
35
Pruebas realizadas
Se realizaron un total de 7 pruebas en 2 dispositivos mviles distintos, cuyos
resultados nos permitieron resolver errores sintcticos, estas cuales se describen a
continuacin en la tabla 1:
Pruebas Realizadas
Satisfactorias
infructuoso
Tiempo Promedio de Respuesta
7
4
3
20 s
36
Conclusin
la codificacin.
Fueron aadidos requerimientos no funcionales como la usabilidad, que permiti
el desarrollo de una interfaz amigable e intuitiva, para mostrar de manera clara y
errores.
El algoritmo sirve como base para realizar medidas de seguridad sobre las redes,
por ejemplo el bloqueo de dispositivos mviles dentro de un ambiente de
trabajo.
37
Referencias
Pressman, R. (2005). Ingeniera del Software: Un enfoque prctico. Mxico: McGrawHills Interamericana Editores, S.A. de C.V.
Azara, C. (1997). Computacin Mvil. Venezuela, caracas.
Cabrera, H. S. (2 de Mayo de 2015). Computacin ubicua. Correo del Orinoco, pg. 4.
Hernndez, M. L. (2010). Diseo Estructurado de Algoritmos: Diagramas de flujos y
pseudocdigos. Mxico: Universidad de Teuxtepe.
Milln, A. F. (2003). Computacin Movil: El desafo de la generacin de Ingenieros de
Sistemas del nuevo siglo. Santiago de Cali, Cali.
Pressman, R. (2005). Ingeniera del Software: Un enfoque prctico. Mxico: McGrawHills Interamericana Editores, S.A. de C.V.
Tanenbaum, A. S., & Van Steen, M. (2002). Distributed Systems: Principles and
Paradigms. Prentice Hall.
UNAD. (2005). Universidad Nacional Abierta y a Distancia. Recuperado el 10 de Julio
de
2016,
de
Campus
Virtual
UNAD:
http://datateca.unad.edu.co/contenidos/201493/CONTENIDO%20DIDACTICO
%20EXE1/leccion_4_computacion_ubicua.html
Vargas Cordero, R. Z. (2009). La Investigacin aplicada: una forma de conocer las
realidades
con
evidencia
cientifica.
Obtenido
de
http://www.latindex.ucr.ac.cr/educacion-33-1/educacion-33-1-09.pdf
Weiser, M. (1991). The Computer for the Twenty-First Century". En M. Weiser, The
Computer for the Twenty-First Century" (pgs. 94-10). Scientific American.
38