Está en la página 1de 12

INSTITUTO TECNOLÓGICO

SUPERIOR DE MISANTLA

ING. EN SISTEMAS
COMPUTACIONALES

DESARROLLO DE APLICACIONES MÓVILES


UNIDAD 1: INTRODUCCIÓN AL
DESARROLLO MÓVIL

ACT. 1: REPORTE DE
INVESTIGACIÓN

PRESENTA
JERSON RAI MIRANDA DIAZ

DOCENTE: MSC. JOSÉ ANTONIO HIRAM


VAZQUEZ LOPEZ

MISANTLA, VERACRUZ 12 DE SEPTIEMBRE DE 2022


Índice de contenido
Introducción ......................................................................................................................................... 1
Resultados ........................................................................................................................................... 2
Streaming seguro móvil ................................................................................................................... 2
Apache Kafka ............................................................................................................................... 2
RabbitMQ ..................................................................................................................................... 2
Seguridad en desarrollo de aplicaciones móviles ........................................................................... 3
Tipos de características de seguridad ......................................................................................... 3
Controles de seguridad ................................................................................................................ 3
Manejo de software de versiones .................................................................................................... 4
Control de versiones .................................................................................................................... 4
Transferencia de estado representacional ...................................................................................... 5
NoSQL ............................................................................................................................................. 6
Key-value ..................................................................................................................................... 6
Document ..................................................................................................................................... 6
Graph ........................................................................................................................................... 6
Geolocalización................................................................................................................................ 7
Conclusiones ....................................................................................................................................... 8
Referencias ......................................................................................................................................... 9

i
Índice de figuras
Figura 1. Logo Apache Kafka .............................................................................................................. 2
Figura 2. Logo RabbitMQ .................................................................................................................... 2
Figura 3. Autenticación de usuarios .................................................................................................... 3
Figura 4. Versiones XYZ ..................................................................................................................... 4
Figura 5. REST Web Service .............................................................................................................. 5
Figura 6. NoSQL.................................................................................................................................. 6
Figura 7. Geolocalización .................................................................................................................... 7

ii
Introducción
Los dispositivos móviles son de gran ayuda en cuanto a la productividad, las personas
resuelven de manera más eficiente procesos para la solución de problemas. Lo mejor de esto es que
lo realizan en cualquier momento, con quien sea y desde donde sea. Las personas consideran el
uso de los dispositivos móviles como una herramienta que afecta en casi todos los ámbitos de la
vida humana, como lo son: educación, salud, negocios y sobre todo en la vida social, volviéndose
así, algo inevitable. El avance de la tecnología cada vez es más notable, las técnicas culturales que
se empleaban cada vez se van alejando ocasionando un impacto negativo y a su vez positivo.
. Se sabe que la clave del éxito de la versión digital de los recursos tradicionales se basa en
que la digitalización de los datos hace posible que ésta pueda ser almacenada, modificada y
transferida sencillamente. Hoy en día los usuarios buscan las interacciones rápidas y con el uso de
los dispositivos móviles el consumo de internet ha superado records, la llegada del streaming a
cambiado por completo el entretenimiento mediante la multimedia, haciendo posible la reproducción
de información en tiempo real.
Es importante conocer lo que existe detrás de las aplicaciones que manejamos al día. Las
redes sociales contemplan estrategias que por razones un tanto complejas desconocemos como el
uso de la privacidad de nuestros datos. Los métodos de seguridad garantizan que los datos que
compartimos con las demás personas estén a salvo y que las compañías hagan un uso correcto uso
de ellos.
Los usuarios tratan de mantener las aplicaciones que manejan al día en constante
actualización con el fin de tener la mejor experiencia. Como desarrollador se debe considerar las
opiniones de los usuarios para satisfacer las peticiones comunes y coherentes que solicitan. Es
frecuente que las empresas realicen actualizaciones al menos una vez por semana, lo que pude ser
agotador para los usuarios esperar la notificación y tener que actualizarla manualmente. En la
actualidad existe el concepto: actualización automática, para solventar el contratiempo de los
usuarios.
Ciertas aplicaciones que utilizamos al día obtienen en todo momento nuestra localización sin
darte cuenta, mantienen al día la predicción del clima, realiza mejoras en tus búsquedas de internet
e incluso nuestro dispositivo muestra la hora exacta con esa misma información. Es curioso darse
cuenta que en todo momento las empresas están localizando usuarios y que es inevitable en la
actualidad no depender de ellas por el hecho de que facilitan la vida humana agilizando las
actividades cotidianas.

1
Resultados
Streaming seguro móvil
Streaming es una tecnología para la distribución de archivos multimedia (generalmente
archivos de audio o video) que permite al usuario (cliente) reproducir el archivo multimedia al mismo
tiempo que lo descarga desde el servidor. Antes de la aparición de esta tecnología era necesario
descargar completamente el archivo multimedia para poder reproducirlo, (Barria & Hales, 2013).
El concepto de streaming surge en los años 1995, cuando los formatos para la reproducción
en tiempo real aparecieron. El ancho de banda de aquellos años era lo suficientemente escaso por
lo que su verdadero comienzo surgió hasta el año 2000, donde se obtenía mejor recepción de los
datos. La aparición de la reproducción en tiempo real hizo que los usuarios que consumían
multimedia desde sus dispositivos móviles no les resultara una tarea complica la descarga de miles
de megabytes, ocupando gran parte de la memoria del dispositivo. Los variados paquetes de
información (audio y video) que viajan desde el servidor al cliente lo hacen mediante la red y son
desechados una vez visto el contenido. De esta manera el usuario disfruta del contenido multimedia
sin la necesidad de esperar a que el archivo se descargue completamente y a su vez mantiene un
almacenamiento optimo.

Apache Kafka
Apache Kafka es una plataforma de transmisión de eventos distribuidos de código abierto
utilizada por miles de empresas para canalizaciones de datos de alto rendimiento, análisis de
transmisión, integración de datos y aplicaciones de misión crítica. (kafka, 2022)
Dentro de las capacidades básicas de Kafka se encuentra un alto rendimiento, permitiendo
el envío de mensajes con latencias tan bajas como 2 ms (milisegundos). A su vez ofrece un
almacenamiento permanente de los datos y una alta disponibilidad. Para entender mejor el concepto,
Kafka es un sistema distribuido que consta de servidores y clientes los cuales se comunican a través
de un protocolo de red TCP. Actualmente empresas como Spotify, Netflix, Adidas, PayPal, por
mencionar algunas, utilizan Apache Kafka.

Figura 1. Logo Apache Kafka

RabbitMQ
RabbitMQ es un bróker de mensajería de código abierto, distribuido y escalable, que sirve
como intermediario para la comunicación eficiente entre productores y consumidores. (Meza, 2019)
Dentro de RabbitMQ se definen contenedores que almacenan mensajes enviados por
productores hasta que las aplicaciones consumidoras obtienen el mensaje y lo procesan. Cabe
destacar que admite múltiples protocolos de mensajería e implementa su arquitectura en
clústeres para alta disponibilidad y mayor rendimiento.

Figura 2. Logo RabbitMQ

2
Seguridad en desarrollo de aplicaciones móviles
Las aplicaciones desarrolladas mantienen todo el tiempo conexiones a contenedores de
almacenamiento, es decir, a bases de datos lo cual deja abierta una gran puerta de posibilidades
hacia la vulnerabilidad de la información almacenada. Una manera para evitarlo es realizando
pruebas de seguridad a las aplicaciones en desarrollo. Esto garantiza tanto al desarrollador como al
cliente la tranquilidad de que los datos enviados y recibidos sean trasladados de manera garantizada.

Tipos de características de seguridad


Según VMware (vmware, 2022), existen diversos tipos de características de seguridad como
lo son: autenticación, autorización, cifrado y registro. Todas orientadas a la validación de las
credenciales de usuarios autorizados (usuario y contraseña), garantizando su identidad y
permitiéndole el acceso a la aplicación. Menciona a su vez la ‘’autenticación multifactor”, basada en
autenticar al usuario requiriendo más de una forma (contraseña y/o huella dactilar y/o reconocimiento
facial).
A pesar de que se logre identificar a los usuarios autorizados, dentro de una aplicación existe
tráfico de datos debido a la conectividad con las bases de datos. Como es bien sabido, los datos
viajan por paquetes (unidades fundamentales más pequeñas de la red) por lo que supone un grave
problema para un desarrollador y una gran oportunidad de vulnerabilidad para un ciberdelincuente.
La solución al dicho problema se solventa cifrando los datos mientras viajan por la red o utilizando
una red privada (VPN) para anexar una capa más de seguridad a las aplicaciones.

Figura 3. Autenticación de usuarios

Controles de seguridad
A las diferentes maneras de proteger las aplicaciones se les conoce como controles de
seguridad. Los controles de seguridad siguen una serie de pasos en común: desarrollar (procesos
de gestión), añadir (procesamiento del desarrollo) y probar (identificación de vulnerabilidades). Uno
de los controles de seguridad más conocidos es Fuzzing, una técnica de testeo
automatizado mediante la que se introducen datos inválidos, aleatorios o inesperados a un sistema
informático, (KeepCoding, 2022). En este caso, esta técnica también puede ser aplicada a
aplicaciones.

3
Manejo de software de versiones
Se llama control de versiones a los métodos y herramientas disponibles para controlar todo
lo referente a los cambios en el tiempo de un archivo. (Borrell, 2006). Al hablar de desarrollo de
software, es indispensable tener en mente que los archivos creados en las aplicaciones deben estar
en constante actualización, puesto que ningún producto de software está totalmente terminado y
perfecto del todo; Los clientes suelen solicitar cambios y/o implementaciones por lo que llevar un
control del historial resulta una buena práctica como desarrollador, llamado de una manera más
profesional: control de versiones.

Control de versiones
Existen analogías que fomentan un formato específico para asignar una versión a un
documento, sin embargo, la numeración depende totalmente del criterio de cada desarrollador. A
pesar de eso, existen buenas prácticas entre los desarrolladores para la asignación de versiones
como:
- Uso de dos o tres cifras (x, y, z): método habitual que expresa una jerarquía en el nivel de
importancia donde:
o ‘’X’’ siempre va a representar actualizaciones de mayor importancia. Para
representar que el producto de software aun no cumple con los requerimientos
mínimos se utiliza 0. (Ejemplo: 0.2.5)
o ‘’Y’’ para cambios no tan drásticos. Los desarrolladores utilizan este nivel para
parchar la versión X corrigiendo errores y añadiendo cambios nuevos. Como nota,
este nivel se le asigna 0 cuando llega una actualización de nivel X. (Ejemplo: 1.5
pasa a ser 2.0)
o ‘’Z’’ para cambios mínimos. Este nivel corrige solo errores, pero no agrega nada
nuevo. Como nota, suele omitirse el tercer nivel cuando no se ejecutan correcciones.

Figura 4. Versiones XYZ

- Versiones numeradas: método compatible con el anterior, donde solo se enumera un número
decimal, es decir, versión 1 la siguiente es la versión 2 y así sucesivamente.
Es recomendable realizar copias de seguridad para mantener el control de versiones sin perder
información que puede ser útil en un futuro.

4
Transferencia de estado representacional
REST es un intento de mostrar cómo debe comportarse una aplicación Web bien diseñada:
una red de páginas Web (una máquina de estados virtual) donde el usuario progresará
seleccionando enlaces (transiciones de estado) que devuelven la página siguiente (el siguiente
estado de la máquina) que el usuario manejará a su gusto. (Fielding, 2000)
Para entender mejor el concepto, el acrónimo REST es la manera en como nos
comunicamos con el servidor desde el cliente, es decir, es un estilo de arquitectura a la hora de
realizar una comunicación entre cliente y servidor. El concepto surge en el año 2000 y no son más
que principios para la asignación de responsabilidades de cada parte (cliente y servidor); Principios
que tienen las siguientes características:
- Arquitectura cliente/servidor
- Staless (trata cada petición como una transacción independiente que no tiene relación con
cualquier solicitud anterior. (Culture, 2020))
- Sistema basado en capas
- Interfaz uniforme

Figura 5. REST Web Service

5
NoSQL
Key-value
Es un tipo de base de datos no relacional (NoSQL) que emplea el paradigma clave-valor,
una forma de almacenar datos pensado para editar, recuperar y eliminar todo tipo de información.
(Cabanas, 2022). En este tipo de base de datos la información que se desea almacenar se guarda
tablas hash (estructura de datos que asocia llaves o claves con valores).

Document
Una base de datos de documentos (también conocida como base de datos orientada a
documentos o almacén de documentos) es una base de datos que almacena información en
documentos. (mongoDB, 2010). Estas bases de datos son de propósito general que se pueden usar
para una variedad de casos de uso en industrias.

Graph
Es una tecnología para la gestión de datos diseñada para manejar conjuntos muy grandes
de datos estructurados, semiestructurados o no estructurados. (Ontotex, 2018). Este tipo de base de
datos ofrece a las organizaciones a acceder, formar y estudiar datos de distintas fuentes, mejorando
la ayuda con análisis de redes sociales y big data.

Figura 6. NoSQL

6
Geolocalización
La geolocalización en el teléfono celular es lo que permite encontrar un dispositivo en
cualquier lugar de la superficie de la Tierra según las coordenadas geográficas: latitud y longitud.
(Medico, 2021)
Se pueden obtener las coordenadas geográficas (latitud y longitud) mediante señales GPS,
Wi-Fi, torres telefónicas y radiofrecuencia. La geolocalización es más que solo la aplicación de
Google Maps; como aplicaciones que brindan algún servicio de predicción del clima, aplicaciones
como bancos al realizar alguna transacción, juegos donde se requiera la identificación de regiones
e incluso al navegar por internet en cualquier dispositivo ya sea portátil o de casa.
Las compañías que desarrollan este tipo de aplicaciones obtienen información en todo
momento para conseguir beneficios en diferentes usos cotidianos como:
- Transporte
- E-commerce
- Delivery
- Redes Sociales
- Marketing digital
- Ventas
Todas estas con el único propósito de obtener la localización del usuario, la cual en parte se
puede aprovechar para:
- Facilitar rutas a nuestro destino
- Calcular con exactitud un paquete
- Predecir fenómenos meteorológicos
- Conseguir mejores resultados de búsqueda
- Solicitar ayuda en caso de emergencias
- Experiencia de uso (lo que las redes sociales muestran conforme a nuestras preferencias
geográficas)
Por otra parte, el concepto manifiesta el único perjuicio de comprometer nuestra privacidad al
usar esta tecnología. Por ello es importante saber que hasta este punto se determinó que la medida
de geolocalización, por su sola naturaleza y alcance, no es restrictiva del derecho a la vida privada.
Una disciplina que actualmente las compañías emplean es el geomarketing el cual estudia cómo
las variables geográficas afectan las interacciones entre prospectos comerciales y negocios. En otras
palabras, el geomarketing analiza cómo las variables geográficas de tu mercado afectan a tu
negocio.

Figura 7. Geolocalización

7
Conclusiones

A medida que las aplicaciones ofrecen mejoras e innovaciones, es cada vez más común que
las personas utilicen los dispositivos portables para tener en todo momento los beneficios que
ofrecen. Con la llegada del streaming (las reproducciones en tiempo real) la manera de ver
multimedia cambio drásticamente generando un gran consumo de internet, por consecuencia, los
desarrolladores de software debían solventarlo creando aplicaciones con esta tecnología. El flujo de
datos mientras se consumen archivos multimedia (audio y video) constituye un papel importante para
los usuarios. La experiencia en tiempo real tiene la ventaja de mantener con cierta latencia el
intercambio de información, pero en cierta parte contribuyen ciertas desventajas en la reproducción,
como que el usuario no puede adelantarla ni mucho menos retrocederla.
El cibercrimen es una actividad delictiva que afecta o abusa de una computadora, una red
informática o un dispositivo en red. Para esto último, los desarrolladores de software deben asegurar
al usuario en todo momento mientras exista flujo de datos en las aplicaciones, es decir, mientras se
intercambian información entre el cliente y servidor, de manera que se utilizan ciertos controles de
seguridad como solución. Los controles de seguridad consisten básicamente en realizar ataques de
prueba a las aplicaciones en desarrollo, y para ello las compañías contratan expertos del área de la
ciberseguridad e incluso personas que practican el cibercrimen con una finalidad legal.
Las empresas desarrolladoras de software tienen el objetivo de satisfacer las necesidades
de los usuarios, por lo que, así como las aplicaciones mantienen nuestra información a salvo, los
desarrolladores tienen la importante tarea de brindar actualizaciones y desglosar dichos cambios y
corrección de errores. Siguiendo las buenas prácticas las empresas ofrecen a sus usuarios las
actualizaciones siguiendo una serie de numeración que mantiene un control del historial de cambios
y a su vez nombra la versión utilizando solo unos cuantos números.

8
Referencias
Barria, M., & Hales, E. (26 de Agosto de 2013). Tecnología Streaming. Obtenido de Tecnología
Streaming: https://www.trabajosocial.unlp.edu.ar/uploads/docs/tecnologia_streaming.pdf
Borrell, G. (13 de Abril de 2006). El control de versiones. Obtenido de El control de versiones:
https://torroja.dmt.upm.es/media/files/cversiones.pdf
Cabanas, R. (04 de Febrero de 2022). abdatum. Obtenido de abdatum:
https://abdatum.com/informatica/base-datos-clave-
valor#:~:text=Las%20bases%20de%20datos%20clave,en%20m%C3%BAltiples%20lengua
jes%20de%20programaci%C3%B3n.
Culture, G. A. (10 de Enero de 2020). Google Art & Culture. Obtenido de Google Art & Culture:
https://artsandculture.google.com/entity/m02fj7y?hl=es
Fielding, R. T. (2000). Architectural Styles and the Design of Networkbased Software Architectures.
California: Tesis Doctoral. Obtenido de Architectural Styles and the Design of Networkbased
Software Architectures.
kafka. (11 de Septiembre de 2022). kafka. Obtenido de kafka: https://kafka.apache.org/
KeepCoding. (9 de Junio de 2022). KeepCoding. Obtenido de KeepCoding:
https://keepcoding.io/blog/que-es-fuzzing-ciberseguridad/
Medico, F. D. (23 de Febrero de 2021). Maplink. Obtenido de Maplink:
https://maplink.global/blog/es/geolocalizacion-movil-en-los-
celulares/#:~:text=La%20geolocalizaci%C3%B3n%20en%20el%20tel%C3%A9fono,Fi%2C
%20torres%20telef%C3%B3nicas%20y%20radiofrecuencia.
Meza, L. F. (31 de Enero de 2019). Academia Pragma. Obtenido de Academia Pragma:
https://www.pragma.com.co/academia/lecciones/conozcamos-sobre-rabbitmq-sus-
componentes-y-beneficios
mongoDB. (10 de Mayo de 2010). mongoDB. Obtenido de mongoDB:
https://www.mongodb.com/document-databases
Ontotex. (2018). Ontotex. Obtenido de Ontotex:
https://www.ontotext.com/knowledgehub/fundamentals/nosql-graph-database/
vmware, I. (2022). vmware. Obtenido de vmware:
https://www.vmware.com/latam/topics/glossary/content/application-
security.html#:~:text=La%20seguridad%20de%20las%20aplicaciones%20se%20refiere%2
0al%20proceso%20de,y%20el%20acceso%20no%20autorizados.

También podría gustarte