fbpx
Wikipedia

Protocolo petición-respuesta (SSDD)

Los protocolos de petición-respuesta son muy representativos en el paso de mensajes y en el intercambio bidireccional de mensajes tal como se puede observar en la metodología cliente-servidor. En particular, dichos protocolos proporcionan soporte de nivel relativamente bajo para solicitar la ejecución de una operación remota, y también proporcionan soporte directo para RPC (Remote procedure call) y RMI (Remote method invocation).

Esta forma de comunicación está diseñada para apoyar los roles y los intercambios de mensajes en interacciones típicas cliente-servidor.

Normalmente, la comunicación de petición-respuesta es síncrona ya que el proceso cliente se bloquea hasta la llegada de la respuesta del servidor, pudiendo interpretarse como una forma de reconocimiento del cliente por parte del servidor. Aunque en ocasiones, cuando los clientes pueden permitirse el lujo de recuperar la respuesta más tarde, la comunicación puede que sea asíncrona.

Primitivas

El protocolo se basa en un trío de primitivas [1]​de comunicación. En el protocolo habrá el mismo número de peticiones que respuestas y puede estar diseñado para proporcionar ciertas garantías de entrega, como si utilizamos datagramas UDP, en cuyo caso el protocolo debe garantizar las entregas mediante acuses de recibo por parte del servidor hacia el cliente.

 
  • doOperation(s,args): los clientes utilizan este método para invocar operaciones remotas. Sus argumentos especifican el servidor remoto (s) y que operación invocar junto con información adicionar requerida por la operación (args). Este método envía un mensaje de solicitud al servidor y después invoca receive para obtener el mensaje de respuesta del cual extrae el resultado y lo devuelve al invocador del método. Este invocador permanece bloqueado hasta que el servidor realiza la operación solicitada y devuelve un mensaje de respuesta al cliente.
  • getRequest: lo utiliza el servidor para obtener las peticiones de servicio.
  • sendReply(r,c): cuando el servidor ha realizado la operación que se le ha solicitado usa sendReply para enviar el mensaje de respuestas al cliente. Cuando el cliente recibe el mensaje de respuesta se desbloquea y su ejecución puede continuar. Respecto a sus parámetros, el primer campo indica si el mensaje es una solicitud o una respuesta. El segundo campo contiene un identificador de un mensaje.


Identificadores de mensajes

Cualquier esquema que implique la gestión de mensajes para realizar acciones como la entrega segura de mensajes o la solicitud de respuesta requerirá que cada mensaje tenga un identificador de mensaje único mediante el cual pueda ser referenciado.

En este caso, los identificadores de mensajes cuentan con dos partes, una que hace que el identificador sea único para el remitente, y la segundo parte que hace que ese mensaje sea único en el sistema distribuido.

Una operación en el cliente genera el identificador para cada mensaje de solicitud y el servidor copia estos identificadores en los mensajes de respuesta correspondientes para que doOperation pueda verificar que una respuesta es el resultado de una solicitud actual y uno una anterior que esté retrasada.

Modelo de fallo

  • Por omisión : el servidor no responde o el mensaje se pierde. Para solucionar esto, doOperation puede implementar un timeout en su espera por el mensaje de respuesta. Hay varias opciones sobre lo que puede hacer una vez finalice el tiempo de espera, la más simple es finalizar con un mensaje de que la operación ha fallado. Pero esto no es lo que sucede habitualmente. Lo normal es que para compensar la posibilidad de que haya mensajes perdidos, doOperation envíe el mensaje de solicitud repetidamente hasta que recibe una respuesta o bien determina que el servidor está caído porque han pasado un determinado número de intentos. Finalmente, cuando regresa doOperation, indicará al cliente, a través de una excepción, que no se ha recibido ningún resultado.
  • Bizantino: el servidor recibe peticiones duplicadas.Hay ocasiones en los que el mensaje de solicitud es retrasmitido y el servidor puede recibirlo más de una vez, como por ejemplo si tarda más en ejecutar la operación que el tiempo de espera del cliente, en cuyo caso este volverá a enviársela. Esto puede llevar a que se realicen determinadas operaciones más de una vez por error. Para evitar esto, el protocolo está diseñado para reconocer mensajes sucesivos del mismo cliente y con el mismo identificador y poder filtrar los duplicados. Si ya la ha realizado y la operación es idempotente, la realiza de nuevo; si no, puede implementar un histórico con los resultados de las operaciones realizadas.

Variaciones

  • Request (R) : el cliente envía un único mensaje de solicitud al servidor. Este protocolo puede ser utilizado cuando no hay ningún valor que devolver de la operación remota y el cliente no requiere de confirmación de que la operación se haya realizado.
  • Request-Reply (RR): este es el protocolo básico, el cual es útil para la mayoría de los intercambios cliente-servidor. No se requieren mensajes ack, ya que el mensaje de respuesta de un servidor se considera como un reconocimiento de cliente. Del mismo modo, una llamada posterior de un cliente puede considerarse como un acuse de recibo del mensaje de respuesta de un servidor.
  • Request-Reply-acknowledge (RRA): el protocolo se basa en el intercambio de tres tipos de mensaje: petición, respuesta y confirmación de respuesta. El mensaje de confirmación de respuesta contiene un identificador del mensaje de respuesta para poder ser reconocido. Esto permitirá al servidor descartar algunos mensajes. La llegada del mensaje de confirmación será interpretado como un acuse de recibo de todos los mensajes de respuesta con un identificador de solicitud más bajo que el de este. Aunque el intercambio involucra un mensaje adicional, no es necesario bloquear al cliente ya que el reconocimiento puede ser transmitido después de que se haya dado la respuesta al cliente. La principal desventaja de este modo es que utiliza más recursos.

Ejemplos

Un buen ejemplo de protocolo de petición-respuesta es HTTP (Hypertext Transfer Protocol) el cual es un protocolo que permite hacer peticiones a servidores web ( páginas HTML,Applets,Servlets...)

Las peticiones especifican una URL que incluye:

  • DNS host servidor
  • Número de puerto
  • Identificador de un recurso

Define una serie de métodos de petición:[2]

  • PUT: reemplaza todas las representaciones actuales del recurso de destino con la carga útil de la petición.
  • GET: pide el recurso cuya URL se da como argumento. Si es un dato , el servidor lo retorna Si es un programa, el servidor lo ejecuta y devuelve su salida Se puede añadir argumentos a la URL para el programa.
  • POST: especifica la URL de un recurso que pueda tratar con los datos suministrados en el cuerpo del mensaje (postear en una lista de correo/modificar un perfil web ,añadir entradas a una base de datos ,proveer datos a un programa (p.ej un formulario)).
  • UPDATE: actualiza un recurso existente.
  • DELETE: se utiliza para eliminar un registro existente..

Referencias

  1. «Primitivas del protocolo petición-respuesta». 
  2. «Métodos de petición HTTP». 

Bibliografía

G. Colouris, J. Dollimore, T. Kindberg and G. Blair. Distributed Systems: Concepts and Design (5th Ed). Addison-Wesley, 2011

Enlaces externos

  • HTTP (Protocolo de Transferencia Hipertexto)
  • Distributed Systems (Concepts and Design)
  • Santamaría,R. Middleware. Sistemas Distribuidos
  •   Datos: Q97175155

protocolo, petición, respuesta, ssdd, protocolos, petición, respuesta, representativos, paso, mensajes, intercambio, bidireccional, mensajes, como, puede, observar, metodología, cliente, servidor, particular, dichos, protocolos, proporcionan, soporte, nivel, r. Los protocolos de peticion respuesta son muy representativos en el paso de mensajes y en el intercambio bidireccional de mensajes tal como se puede observar en la metodologia cliente servidor En particular dichos protocolos proporcionan soporte de nivel relativamente bajo para solicitar la ejecucion de una operacion remota y tambien proporcionan soporte directo para RPC Remote procedure call y RMI Remote method invocation Esta forma de comunicacion esta disenada para apoyar los roles y los intercambios de mensajes en interacciones tipicas cliente servidor Normalmente la comunicacion de peticion respuesta es sincrona ya que el proceso cliente se bloquea hasta la llegada de la respuesta del servidor pudiendo interpretarse como una forma de reconocimiento del cliente por parte del servidor Aunque en ocasiones cuando los clientes pueden permitirse el lujo de recuperar la respuesta mas tarde la comunicacion puede que sea asincrona Indice 1 Primitivas 2 Identificadores de mensajes 3 Modelo de fallo 4 Variaciones 5 Ejemplos 6 Referencias 7 Bibliografia 8 Enlaces externosPrimitivas EditarEl protocolo se basa en un trio de primitivas 1 de comunicacion En el protocolo habra el mismo numero de peticiones que respuestas y puede estar disenado para proporcionar ciertas garantias de entrega como si utilizamos datagramas UDP en cuyo caso el protocolo debe garantizar las entregas mediante acuses de recibo por parte del servidor hacia el cliente doOperation s args los clientes utilizan este metodo para invocar operaciones remotas Sus argumentos especifican el servidor remoto s y que operacion invocar junto con informacion adicionar requerida por la operacion args Este metodo envia un mensaje de solicitud al servidor y despues invoca receive para obtener el mensaje de respuesta del cual extrae el resultado y lo devuelve al invocador del metodo Este invocador permanece bloqueado hasta que el servidor realiza la operacion solicitada y devuelve un mensaje de respuesta al cliente getRequest lo utiliza el servidor para obtener las peticiones de servicio sendReply r c cuando el servidor ha realizado la operacion que se le ha solicitado usa sendReply para enviar el mensaje de respuestas al cliente Cuando el cliente recibe el mensaje de respuesta se desbloquea y su ejecucion puede continuar Respecto a sus parametros el primer campo indica si el mensaje es una solicitud o una respuesta El segundo campo contiene un identificador de un mensaje Identificadores de mensajes EditarCualquier esquema que implique la gestion de mensajes para realizar acciones como la entrega segura de mensajes o la solicitud de respuesta requerira que cada mensaje tenga un identificador de mensaje unico mediante el cual pueda ser referenciado En este caso los identificadores de mensajes cuentan con dos partes una que hace que el identificador sea unico para el remitente y la segundo parte que hace que ese mensaje sea unico en el sistema distribuido Una operacion en el cliente genera el identificador para cada mensaje de solicitud y el servidor copia estos identificadores en los mensajes de respuesta correspondientes para que doOperation pueda verificar que una respuesta es el resultado de una solicitud actual y uno una anterior que este retrasada Modelo de fallo EditarPor omision el servidor no responde o el mensaje se pierde Para solucionar esto doOperation puede implementar un timeout en su espera por el mensaje de respuesta Hay varias opciones sobre lo que puede hacer una vez finalice el tiempo de espera la mas simple es finalizar con un mensaje de que la operacion ha fallado Pero esto no es lo que sucede habitualmente Lo normal es que para compensar la posibilidad de que haya mensajes perdidos doOperation envie el mensaje de solicitud repetidamente hasta que recibe una respuesta o bien determina que el servidor esta caido porque han pasado un determinado numero de intentos Finalmente cuando regresa doOperation indicara al cliente a traves de una excepcion que no se ha recibido ningun resultado Bizantino el servidor recibe peticiones duplicadas Hay ocasiones en los que el mensaje de solicitud es retrasmitido y el servidor puede recibirlo mas de una vez como por ejemplo si tarda mas en ejecutar la operacion que el tiempo de espera del cliente en cuyo caso este volvera a enviarsela Esto puede llevar a que se realicen determinadas operaciones mas de una vez por error Para evitar esto el protocolo esta disenado para reconocer mensajes sucesivos del mismo cliente y con el mismo identificador y poder filtrar los duplicados Si ya la ha realizado y la operacion es idempotente la realiza de nuevo si no puede implementar un historico con los resultados de las operaciones realizadas Variaciones EditarRequest R el cliente envia un unico mensaje de solicitud al servidor Este protocolo puede ser utilizado cuando no hay ningun valor que devolver de la operacion remota y el cliente no requiere de confirmacion de que la operacion se haya realizado Request Reply RR este es el protocolo basico el cual es util para la mayoria de los intercambios cliente servidor No se requieren mensajes ack ya que el mensaje de respuesta de un servidor se considera como un reconocimiento de cliente Del mismo modo una llamada posterior de un cliente puede considerarse como un acuse de recibo del mensaje de respuesta de un servidor Request Reply acknowledge RRA el protocolo se basa en el intercambio de tres tipos de mensaje peticion respuesta y confirmacion de respuesta El mensaje de confirmacion de respuesta contiene un identificador del mensaje de respuesta para poder ser reconocido Esto permitira al servidor descartar algunos mensajes La llegada del mensaje de confirmacion sera interpretado como un acuse de recibo de todos los mensajes de respuesta con un identificador de solicitud mas bajo que el de este Aunque el intercambio involucra un mensaje adicional no es necesario bloquear al cliente ya que el reconocimiento puede ser transmitido despues de que se haya dado la respuesta al cliente La principal desventaja de este modo es que utiliza mas recursos Ejemplos EditarUn buen ejemplo de protocolo de peticion respuesta es HTTP Hypertext Transfer Protocol el cual es un protocolo que permite hacer peticiones a servidores web paginas HTML Applets Servlets Las peticiones especifican una URL que incluye DNS host servidorNumero de puertoIdentificador de un recursoDefine una serie de metodos de peticion 2 PUT reemplaza todas las representaciones actuales del recurso de destino con la carga util de la peticion GET pide el recurso cuya URL se da como argumento Si es un dato el servidor lo retorna Si es un programa el servidor lo ejecuta y devuelve su salida Se puede anadir argumentos a la URL para el programa POST especifica la URL de un recurso que pueda tratar con los datos suministrados en el cuerpo del mensaje postear en una lista de correo modificar un perfil web anadir entradas a una base de datos proveer datos a un programa p ej un formulario UPDATE actualiza un recurso existente DELETE se utiliza para eliminar un registro existente Referencias Editar Primitivas del protocolo peticion respuesta Metodos de peticion HTTP Bibliografia EditarG Colouris J Dollimore T Kindberg and G Blair Distributed Systems Concepts and Design 5th Ed Addison Wesley 2011Enlaces externos EditarHTTP Protocolo de Transferencia Hipertexto Distributed Systems Concepts and Design Santamaria R Middleware Sistemas Distribuidos Datos Q97175155 Obtenido de https es wikipedia org w index php title Protocolo peticion respuesta SSDD amp oldid 139001111, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos