Arquitectura de Aplicaciones Móviles Distribuida

JSON Conoce-el-archivo-JSON-y-su-importancia-en-las-paginas-web

JavaScript Object Notation o Notación de Objetos de JavaScript, es un formato ligero de intercambio de datos, que resulta sencillo de leer y escribir para los programadores y simple de interpretar y generar para las máquinas.

images (1)

JSON es un formato de texto completamente independiente de lenguaje, pero utiliza convenciones que son ampliamente conocidos por los programadores.

entre ellos:

C

C++

mejores-lenguajes-de-programacion-2018

Java

JavaScript

Perl

Python

Según la descripción de Stack Overflow, JSON “define seis tipos de valores: nulo, números, cadenas, booleanos, matrices y objetos”.

Una de las características de JSON, al ser un formato que es independiente de cualquier lenguaje de programación, es que los servicios que comparten información por este método no necesitan hablar el mismo idioma, es decir, el emisor puede ser Java y el receptor Python, pues cada uno tiene su propia librería para codificar y decodificar cadenas en este formato.

Interoperabilidad interoperabilidad-nube-imagen-contenido1-blog-desdelinux-830x336

A principios de la década de los 90 surgió el problema de que las máquinas pudieran entenderse entre sí. Entonces utilizaban diferentes sistemas operativos y sus programas estaban escritos en diferentes lenguajes de programación. Una de las soluciones fue crear el estándar XML.

Características de JSON:

click to edit

  • JSON es solo un formato de datos.
  • Requiere usar comillas dobles para las cadenas y los nombres de propiedades. Las comillas simples no son válidas.
  • Una coma o dos puntos mal ubicados pueden producir que un archivo JSON no funcione.
  • Puede tomar la forma de cualquier tipo de datos que sea válido para ser incluido en un JSON, no solo arreglos u objetos. Así, por ejemplo, una cadena o un número único podrían ser objetos JSON válidos.
  • A diferencia del código JavaScript, en el que las propiedades del objeto pueden no estar entre comillas, en JSON solo las cadenas entre comillas pueden ser utilizadas como propiedades.

“Es la capacidad de comunicación entre distintos sistemas que hablan en distintos formatos y lenguajes, pero que puede ser compartida e interpretada por cada uno de los receptores que interactúan en la conversación”, aseguró a Dinero Fernández Feo.

En otras palabras, se trata de procesos de comunicación e intercambio de información entre dispositivos que pueden ir desde tabletas y teléfonos móviles, hasta radios y computadoras de diversas marcas, lo que permite que las empresas conecten a sus equipos de trabajo en una red de funcionamiento permanente y segura.

Beneficios de la interoperabilidad

Las organizaciones que aplican tecnologías que facilitan la comunicación y sincronía entre sistemas consiguen los siguientes beneficios:

click to edit

Información cohesionada. Se identifican sistemas de información que operan de manera aislada y se localiza información redundante para conseguir una comunicación fluida entre los mismos.

Mayor adaptabilidad. Los sistemas que se encargan de capturar la información se conectan entre si y transfieren los datos que han detectado de manera automática y flexible, adaptándose a los cambios más rápido.

Más productividad y control. Los datos que se capturan se relacionan con producción y se gestionan para que estén disponibles y accesibles por parte de los distintos usuarios de un modo más sencillo.

Cómo puede tu empresa lograr la interoperabilidad de sus sistemas?

Las empresas suelen llevar a cabo la interoperabilidad en dos niveles: semántico y técnico.

click to edit

Interoperabilidad semántica

En este nivel los sistemas que intercambian datos los comprenden perfectamente. En este caso, la interoperabilidad semántica requiere que la información obtenida sea muy útil y significativa.

Se refiere al nivel de interoperatividad que permite que diferentes componentes de software cooperen entre si, incluso en aquellos casos en que el lenguaje de programación y la interfaz sean distintos.

Interoperabilidad técnica

Monolito (Ingeniería de Software)

Los sistemas monolíticos (también definidos como aplicaciones monolíticas) agrupan la funcionalidad y sus servicios en una base de código única.

click to edit

click to edit

Fáciles de desarrollar, fáciles de desplegar y – por su misma simplicidad – es sencillo y rápido ejecutarlas. Debido a la simpleza de su estructura, el desarrollo de aplicaciones monolíticas suele ser menos costoso que sus alternativas.

VENTAJAS

Sin embargo, una aplicación que concentra toda su funcionalidad no es necesariamente mejor, en especial si tiende a crecer en complejidad, usuarios, desarrolladores y carga.

Actualizar una aplicación monolítica tiene dificultades, pues – al tratarse de un código único – todo nuevo despliegue requiere relanzar la aplicación en su conjunto. Además, por el tamaño del código único, resulta difícil identificar y solucionar problemas concretos.

Las aplicaciones monolíticas son un reto de crecimiento. Tratándose de un código único, no es posible trabajar en diversos ambientes simultáneamente. El crecimiento del código va aparejado de una sobrecarga de la aplicación informática, lo que en última instancia repercute sobre su agilidad.

En muchos casos la elección de usar una aplicación monolítica no la hace un equipo de desarrollo, sino hace parte de decisiones de negocio y de relaciones con proveedores externos. Si una aplicación de negocio se vende como una sola unidad, estaremos atados a esa arquitectura obligatoriamente.

Microservicios

click to edit

Son una manera de construir aplicaciones y servicios digitales. Una arquitectura de microservicios busca desacoplar o independizar los componentes individuales de una aplicación, para que cada componente sea una aplicación en sí misma.

Los microservicios se conectan entre sí a través de API’s, permitiendo que diferentes equipos trabajen al mismo tiempo en diferentes partes de una aplicación.

blog-chakray-20-1-b

El gran diferenciador de los microservicios es que los distintos componentes del software pueden ser desarrollados y desplegados de forma independiente. Se refuerza el aislamiento del código, pues al tratarse de componentes separados, errores en un componente pueden reducir el impacto la totalidad del código como sucede con las aplicaciones monolíticas.

Los microservicios permiten que componentes individuales estén escritos en distintos lenguajes de programación, haciendo posible contar con programadores de distintas especialidades trabajando en el mismo producto.

Los microservicios pueden verse como una evolución del SOA (Service Oriented Architecture), cuya función es dividir un sistema complejo en una variedad de unidades independientes, cada una orientada a una función particular, con su propia lógica de negocio e independencia a nivel de desarrollo. Si bien SOA proponía desarrollar y pensar en servicios independientes para el negocio, en la mayoría de los casos estos servicios estaban unidos en una misma aplicación.

RETROFIT

Retrofit nos facilita el uso de llamadas rest, realizando las llamadas asíncronas sin que nosotros nos preocupemos de nada. Si además usamos GSON podemos obtener el resultado en una colección de objetos

Retrofit se convierte en una librería casi indispensable.

subir-imagen-android