Clientes Ligeros

Agenda

  • Definición
  • Características
  • El proceso
  • El ejemplo
  • Actividad de aprendizaje

Cliente Ligero

Definiciones

En una arquitectura cliente-servidor:

Conceptos de Cliente ligero

  • Cliente: es el dispositivo o aplicación que solicita servicios o recursos. Puede ser una app móvil, un navegador web, entre otras. Su función principal es interactuar con el usuario y enviar solicitudes al servidor.

Conceptos de Cliente ligero

  • Servidor: es un sistema que provee servicios o datos al cliente. Puede ser un servidor web, de base de datos, de autenticación, etc. Responde a las peticiones de los clientes procesando información o entregando contenido.

Conceptos de Cliente ligero

  • Ejemplo: Una app de clima (cliente) solicita al servidor la temperatura actual en tu ciudad. El servidor procesa la petición y envía los datos al cliente para que los muestre.

Características

Un cliente ligero (o thin client) es una aplicación que

Caracteristicas CL

  • Depende fuertemente del servidor. Hace poco procesamiento por sí misma.
  • Consume pocos recursos del dispositivo. Ideal para móviles con capacidades limitadas.
  • Tiene una interfaz sencilla. Solo recoge entradas del usuario y muestra resultados.

Caracteristicas CL

  • No almacena muchos datos localmente. Usa almacenamiento en la nube o bases de datos remotas.
  • Consume pocos recursos del dispositivo. Ideal para móviles con capacidades limitadas.
  • Actualización y mantenimiento centralizado. Las actualizaciones se aplican en el servidor, sin necesidad de modificar el cliente constantemente.

Ventajas CL

  • Ahorro de batería y datos.
  • Menor uso de memoria.
  • Fácil integración con servicios en la nube.

Desventajas CL

Alta dependencia de la conectividad

  • Requieren estar conectados a Internet para funcionar correctamente
  • Si hay una mala conexión o no hay red, la app pierde funcionalidad o deja de funcionar.

Desventajas CL

Latencia en la respuesta

  • Como todo el procesamiento ocurre en el servidor, puede haber tiempos de espera si el servidor está saturado o la red es lenta.

Desventajas CL

Poca funcionalidad offline

  • Al no almacenar datos ni lógica de negocio en el dispositivo, no funcionan bien (o no funcionan) sin conexión.

Desventajas CL

Menor control sobre el rendimiento

  • El rendimiento depende de la calidad del servidor y la red, no tanto del dispositivo del usuario.

Desventajas CL

Limitaciones en el diseño de funcionalidades complejas

  • Si se necesita mucho procesamiento local (como edición de imágenes, juegos, IA, etc.), el cliente ligero no es adecuado.

Desventajas CL

Riesgos de seguridad si el servidor falla

  • Al centralizar toda la lógica y datos en el servidor, un fallo o ataque puede afectar a todos los usuarios.

Etapas de programación de CL

Etapa Implicaciones
Diseño de la interfaz
  • Se usa un framework móvil (como Flutter, React Native o Android Studio).
  • Se crean pantallas con formularios, botones, vistas de datos, demás.
Conexión con el servidor
  • El cliente se comunica mediante API REST o GraphQL.
  • Se usan métodos HTTP (GET, POST, PUT, DELETE) para enviar o recibir datos.
Manejo de datos
  • El cliente solo almacena temporalmente los datos que recibe del servidor.
  • Los datos importantes se mantienen en el servidor o en bases de datos remotas.
Seguridad y autenticación
  • El cliente puede incluir mecanismos como token JWT, OAuth o claves API.
  • Se protege la comunicación con HTTPS.
Pruebas y despliegue
  • Se realizan pruebas de conexión, carga, y compatibilidad.
  • El cliente ligero se publica en tiendas de apps (Play Store, App Store) o se distribuye directamente.
Desplaza para ver más

Ejemplo de uso

Situación: Imagina que estás usando una app móvil para pedir comida a domicilio (como Uber Eats o Rappi).

¿Qué hace la app (cliente ligero)?

  • Muestra los menús, toma tu dirección y elige tu método de pago.
  • Pero no guarda los datos ni toma decisiones: todo lo consulta al servidor.

¿Qué hace el servidor?

  • Verifica disponibilidad del restaurante.
  • Calcula el tiempo de entrega.
  • Procesa tu pedido y lo asigna a un repartidor.

Ejemplo de acceso de un CL


                        // Cliente ligero en una app móvil usando JavaScript (React Native o similar)
                        fetch("https://api.ejemplo.com/productos")
                            .then(res => res.json())
                            .then(data => mostrarProductos(data));

                    

Ejemplo práctico

Construyendo un cliente ligero móvil sencillo

Ejemplo práctico

Objetivo:Reconocer y aplicar los conceptos de cliente ligero y servidor mediante la creación de una aplicación móvil que consume datos desde un servidor externo y los muestra en pantalla.

Ejemplo práctico

Requisitos:

  • Tener instalado Visual Studio Code y Node.js
  • Tener conocimientos básicos de HTML, CSS y JavaScript
  • Contar con Expo Go instalado en el celular (para pruebas)
  • Tener conexión a Internet

Ejemplo práctico

Herramientas:

  • API pública JSONPlaceholder URL: https://jsonplaceholder.typicode.com/users
  • React Native con Expo

Ejemplo práctico

Creando el proyecto:

  • Abrir una terminal
  • Ejecutar:
    • npx create-expo-app cliente-ligero-demo
    • cd cliente-ligero-demo
    • npx expo start

Ejemplo práctico

Editando:

  • Abrir el fichero App.js

Ejemplo práctico

Reemplaza con el siguiente código:


                     
                    

Ejemplo práctico

Ejecución:

  • Guarda los cambios.
  • Ejecuta
  • Escanea el qr
  • Se debe observar cómo la app muestra una lista de usuarios extraída en tiempo real desde un servidor remoto (API).
  • Si se apaga el WiFi o los datos, se aprecia que la app ya no puede cargar los datos, lo que demostra que es un cliente ligero.

Ejemplo práctico

Extra:

Cambia la url por: https://jsonplaceholder.typicode.com/posts

Ejemplo práctico

Responde:

  • ¿Dónde se están guardando los datos de los usuarios?
  • ¿Qué pasaría si el servidor de la API dejara de funcionar?
  • ¿Podría esta app mostrar los datos si no hay conexión a Internet?
  • ¿Qué ventajas tiene este enfoque para una app pequeña?

Actividad de aprendizaje

  • Google Frexus
  • Selecciona la opción: Generando Valor Agregado.
  • En frexus, Ve a la sección de búsqueda (pulsa sobre la lupa).Escribe: "Cliente ligeros"
  • Selecciona la opción "Cliente ligero y desarrollo móvil".
  • Resuelve cada una de las actividades planteadas.

La innovación distingue a los líderes de los seguidores

- Steve Jobs

Gracias

¿Dudas, preguntas, comentarios?.