Aplicaciones Distribuidas

Hoy en día, hablar de aplicaciones es hablar de Web Apps, Mobile Apps, y hasta Wearable Apps. Sin embargo, pocas veces nos hemos detenido a preguntar realmente realmente como que un simple smartphone puede hacer cosas tan complejas como tener una conferencia en línea con muchas personas, consultar tus estados financieros en los bancos, obtener el perfil de alguien en Facebook, y conocer en cuestión de mili-segundos tanta información. Para lograr tanta potencia, las aplicaciones se valen de un tipo diferente de arquitectura, llamada: ARQUITECTURA DISTRIBUIDA.


El término hace alusión a distribuir la carga de procesos en N cantidad de dispositivos que orquestados por un MASTER se logren realizar procesos tan complejos y sincronizados, como conectar a cientos de personas a cientos de kilómetros en simultáneo. El inverso de este tipo de arquitectura es la centralizada, donde un solo dispositivo es el encargado de hacer todo el proceso. En este esquema puedes ver gráficamente estos tipos de arquitecturas.

Odoo image and text block
Para lograr este tipo de arquitectura distribuida, se hacen uso de dos tipos de aplicaciones:

Aplicaciones Frontend

  • Estas aplicaciones se encargan de consumir la información que exponen las aplicaciones Backend, mediante el uso de protocolos específicos (HTTP/HTTPS). De tal manera que "de este lado" la aplicación no gestiona ningún proceso directo con la base de datos ni procesos complejos, sino que se especializa en la experiencia de usuario.
  • Aplicaciones web: Angular 4
  • Android: Kotling y Java
  • IOS: Swift/ Objective-C
  • Todo los anteriores ejecutan peticiones HTTP/HTTPS para comunicarse con su Web Service y obtener la data en específico. 

Aplicaciones Backend

  • Estas aplicaciones se encargan de recibir y brindar información a través de un formato de comunicación específico (normalmente JSON o XML) de tal manera que logran procesar la información y realizar las operaciones correspondientes: ingresar en la base de datos, consultar información, realizar algún análisis robusto de datos, etc.
  • Web Services:
    •SOAP

    •Rest
  • Se accede mediante una URL, y un tipo de método HTTP/HTTPS. De este lado, tecnologías como Java, Python, Ruby, C# y Visual Basic son altamente usadas.

Ambas aplicaciones son relativamente independientes, pues bien son funcionales hasta cierto grado, pero están directamente conectadas y necesitan una de la otra para dar la experiencia completa a los usuarios.


Pero... ¿Cuál es la ventaja de usar esta arquitectura?

  1. Puedes conectar N cantidad de clientes a una misma aplicación backend, aún cuando cada aplicación cliente esté usando diferentes tecnologías de desarrollo (Angular, Kotlin, Swift) simplemente debe respetarse el protocolo de comunicación y el lenguaje de comunicación (SOAP/XML, REST/JSON).

  2. En términos de rendimiento, la carga de los procesos se divide, pues en esta arquitectura la aplicación backend solo se encargaría de soportar la carga de los procesos de renderización de vistas y presentación de información, librando al servidor de procesos de carga innecesaria dependiendo del "lado" para el cual se usa el servidor.

  3. Los desarrolladores pueden especializarse en cada "lado" de la aplicación y ser más efectivos en los procesos de creación de software. Pues un backend se encargaría de gestionar procesos, rendimiento y optimización de los recursos del servidor, mientras que el frontend por su parte se encargaría de la usabilidad de la aplicación, la experiencia de usuario, temas de diseño responsivo, etc.

  4. Las aplicaciones pueden escalarse con mayor facilidad y el mantenimiento de las mismas se vuelve más sencillo, pues como se tiene aplicaciones especializadas, el corregir los bugs de cada aplicación se vuelve más simple.

Hoy que conoces este gran secreto, sabes que detrás de esa bonita aplicación de Facebook que está instalada en tu teléfono (frontend) existe una gran aplicación backend que se encarga de hacer el trabajo duro.

Estas nuevas arquitecturas no solo se usan en móviles, a decir verdad, el mercado laboral a nivel mundial demanda especialistas en tecnología capaces de crear aplicaciones en esta arquitectura, ya sea como frontend o backend. Si jamás has creado un Web Service y te gustaría saber cómo incursionar en esta arquitectura, ponte al pendiente en las próximas semanas estaremos liberando un vídeo tutorial donde aprenderás a crear un Web Service sencillo con Java usando Spring las cuales son tecnologías altamente usadas en el desarrollo de este tipo de arquitecturas y próximamente implementar Angular 4 para consumir este servicio.


Y tú de qué lado estás... ¿Frontend o Backend? 

Escriba un comentario

Usted debe ser registrado escribir un comentario.