domingo, 1 de marzo de 2015

¿Que es WebSocket?

WebSocket es un protocolo que proporciona un canal de comunicación bidireccional y sobre un único socket TCP, por lo que permite que una aplicación web alojada en un explorador se mantenga conectada con el extremo web durante todo el tiempo.
 
Para la comunicación bidireccional el protocolo WebSocket requiere que tanto la aplicación cliente como servidor conozcan los detalles del protocolo. Esto quiere decir que requiere de una página web que cumpla con WebSocket y que se comunique con un extremo que cumpla con WebSocket.
 
La interacción de WebSocket comienza con un protocolo de enlace en el que las dos partes (explorador y servidor) confirman mutuamente su intención de comunicarse a través de una conexión persistente. Después se envía un montón de paquetes de mensajes a través de TCP en ambas direcciones.
 
A continuación se muestra una imagen donde se puede observar la interacción
 
 

viernes, 27 de febrero de 2015

¿Qué es RMI?

Es una manera para programar que java ofrece, para invocar métodos que radican en un objeto que no se encuentra en el cliente. RMI trabaja con dos clases, una del lado del cliente, que funciona como resguardo, y otra con el lado del servidor, que es el esqueleto.  El cliente envía el resguardo, que es almacenado en el esqueleto del servidor. El servidor ejecuta el método solicitado, y actualiza el esqueleto, que es enviado de nuevo al cliente.

A través de RMI, un programa Java puede exportar un objeto, con lo que dicho objeto estará accesible a través de la red y el programa permanece a la espera de peticiones en un puerto TCP. A partir de ese momento, un cliente puede conectarse e invocar los métodos proporcionados por el objeto.
 
La invocación se compone de los siguientes pasos:

 

-Encapsulado de los parámetros.
-Invocación del método del cliente sobre el servidor. El invocador se queda esperando una respuesta.
-Al terminar la ejecución, el servidor serializa el valor de retorno si es que lo hay y lo envía al cliente.
-El código cliente recibe la respuesta y continúa como si la invocación hubiera sido local.