Blog personal de Sergio Madrigal donde encontrar textos sobre ciencia y tecnología, psicología, cine y literatura y quizá alguna cosita más.

Etiqueta: web (página 1 de 1)

Aplicaciones síncronas y asíncronas

En el mundo de las aplicaciones web nos encontramos con dos grandes tipos de ellas que, además, siguen una evolución histórica.

En los inicios de Internet las comunicaciones se basaban en el modelo cliente – servidor en el que el usuario realizaba una consulta (cliente) y el servidor respondía a esta petición.

Este comportamiento se conoce como comunicación síncrona y por tanto a aquellas aplicaciones que siguen este modelo se les denomina aplicaciones síncronas.

Aplicaciones Síncronas y sus limitaciones

Las aplicaciones síncronas, por su diseño, presentan una serie de limitaciones que con el paso del tiempo y la evolución del uso y la capacidad de la red, han terminado por ser determinantes en el desarrollo de tecnologías alternativas.

Una de estas limitaciones involucra la actualización de los datos que se muestran en pantalla. Por ejemplo, considera una aplicación que muestra los precios de las acciones de un mercado bursátil cualquiera. Idealmente, la aplicación debe ser capaz de actualizar los valores en un determinado intervalo de tiempo: 10 segundos, por poner un caso. Cada 10 segundos el navegador enviaría una petición al servidor para obtener la versión más actualizada de los datos. El problema obvio que surge de este modo de funcionamiento es que existirá un lapso de tiempo en el que los datos estén desactualizados y esto puede suponer una merma importante de las prestaciones de una aplicación.

En estos casos y para superar estas limitaciones, las aplicaciones síncronas están siendo sustituidas por lo que se conoce por aplicaciones asíncronas.

Aplicaciones Asíncronas

Las aplicaciones asíncronas permiten la notificación de un cliente cuando un evento ocurre en la parte del servidor. De esta forma, las aplicaciones asíncronas pueden actualizar su información de forma mucho más eficiente y rápida que las síncronas.

Para permitir un comportamiento asíncrono la comunicación se produce en paralelo (simultáneamente) con el flujo síncrono (principal).

Aunque existen numerosos tipos de comunicaciones asíncronas, nos encontramos con tres principales: poll, long-poll y push.

Comunicación asíncrona POLL

El navegador envía las peticiones HTTP al servidor en intervalos regulares. El servidor responde con actualizaciones. Esto permite al sistema actualizar intermitentemente la aplicación dentro del navegador.

Comunicación asíncrona LONG-POLL

El cliente genera una petición HTTP hacia una dirección conocida del servidor. Cuando el servidor tiene una actualización, responde con un mensaje HTTP. Inmediatamente después de recibir la respuesta, el cliente genera una nueva petición HTTP.

Comunicación asíncrona PUSH

El cliente abre una conexión con el servidor enviando una petición HTTP a una dirección conocida del servidor. El servidor entonces envía una respuesta que aparentemente nunca termina lo cual implica mantener la comunicación siempre abierta. Cuando es necesario, el servidor envía un sub-mensaje de actualización al cliente a través de la conexión abierta. Durante el tiempo en el que la conexión está abierta, el servidor envía mensajes PING al cliente para prevenir que éste cierre la conexión por timeout.

Una interacción más natural.

Con la llegada de este tipo de aplicaciones asíncronas, el usuario se relaciona con las aplicaciones de una forma mucho más natural. Esto termina por permitir desarrollar soluciones que se integran mejor y tienen una respuesta más eficiente en determinados entornos donde la información es un bien valioso y la rapidez de respuesta una virtud necesaria.

Tu primera aplicación – I. Diseño Funcional

Cuando nos enfrentamos a un proyecto de desarrollo en cualquier entorno (Android, iOS, Web, Java, etc.) tenemos que tener muy en cuenta que existen una serie de pasos críticos y que, pese a que puedan suponer perder tiempo en un principio, al final van a resultar fundamentales en el éxito del desarrollo.

Uno de estas fases es la diseño funcional.

El diseño funcional

Para empezar tenemos que saber qué es el diseño funcional.

Básicamente el diseño funcional es el redactar en un documento más o menos definido cómo se va a comportar nuestra aplicación: es decir, cómo va a funcionar.

Aunque parezca una idea trivial, no tiene nada que ver aquello que tenemos en nuestra cabeza con aquello que luego terminamos plasmando en el papel. Cuando nos surge la idea en realidad son muchas funciones que coexisten (e incluso que se solapan) puesto que nuestra imaginación fluye libremente.

Pero una vez nos enfrentamos con el documento en blanco la cosa cambia: concretamos funciones, definimos exactamente lo que queremos hacer y cómo queremos que nuestra aplicación responda acotando claramente cada una de las características de la misma.

Por eso, durante el proceso de creación de este documento debemos tratar de ser lo más concisos que podamos, evitando cualquier tipo de ambigüedad y buscando que cada iteración o característica añadida en nuestro proyecto sea lo más simple y clara posible.

Consejos a la hora de redactar un Diseño Funcional

Una buena práctica a la hora de trabajar con este tipo de documentos es plantearnos la posibilidad de que sean otras personas las que tengan que leerlos, entenderlos e incluso llevarlos a cabo.

Empleando esta técnica procuraremos ser más concretos y obviaremos definiciones que dependan de nuestro juicio o de nuestros conocimientos. Esto nos va a resultar útil cuando pasadas unas semanas y en pleno proceso de desarrollo no recordemos exactamente cuál era la finalidad o el objetivo de determinada parte de nuestra aplicación: en el diseño funcional la tendremos definida.

Planificación y Acción

Siempre he defendido que debe existir un equilibrio entre planificación y acción: no tiene sentido alguno lanzarnos locamente a desarrollar partiendo de la nada y andar programando a salto de mata como tampoco tiene lógica pasarnos meses planificando sin actuar. Hay que buscar la eficiencia de procesos: planificar en un corto lapso de tiempo y, una vez con las ideas claras, poner en marcha nuestro plan.

Ya sabéis: no hay viento favorable para aquel barco que no sabe hacia dónde se dirige, pero cualquier camino de 1000 pasos empieza por el primero. Planificación y acción.

Impresionantes fotografías de ciudades

Muchos conocéis mi creciente interés por el mundo de la fotografía que me está llevando a plantearme seriamente la adquisición de un nuevo capricho en forma de cámara Reflex semiprofesional.

Mientras me decido por cuál de todas las que muchos de vosotros me habéis recomendado, últimamente me ha dado por centrarme en las formas de realizar las fotos. Qué tipo de retoque se suele utilizar, etc.

Navegando he llegado a está increible página web donde se muestras fotografías de grandes ciudades con una calidad digna de mención.

Inmejorables para realizar fondos de pantalla, diseños para webs o incluso pósters motivacionales. Eso ya os lo dejo a vosotros.

Enlace | http://designm.ag/inspiration/cityscape-photos/

Vía | PuntoGeek.com