Exposición sobre:
"Patrón CallBack"
(Retrollamada)
Tipo: Procesamiento (de comportamiento)
Nivel: Arquitectura
Propósito
Permitir que un cliente se registre en un servidor para ciertas operaciones. De esta forma, el servidor puede notificar al cliente cuando la operación ha finalizado.
Un Gestor de información personal distribuido realizara periódicamente costosas peticiones a un servidor. Por ejemplo, el tiempo necesario para recuperar un proyecto completo almacenado en un servidor es absolutamente impredecible el proyecto podría tener miles de tareas y de desarrollos.
Ante esta situación, el hecho de mantener una conexión de red abierta supondría una limitación para el servidor. Aunque mantener esa conexión abierta podría mejorar la eficiencia del servidor, el tener una conexión por cada cliente limita severamente el número de peticiones cliente que el servidor puede procesar concurrentemente.
En vez de que le cliente y el servidor se mantengan conectados, seria mejor permitir que el servidor se conectara con el cliente cuando finalizara su petición correspondiente. El patrón CallBack utiliza esta aproximación.
Entre las ventajas obtenidas por el uso de este patrón se incluyen el ahorro de ancho de banda y el uso más eficiente del tiempo de procesamiento en el servidor. Esta solución también da ala servidor la libertad de ejecutar acciones como poner en cola las peticiones y utilizar prioridad en las tareas, para gestionar de forma mas eficiente los recursos disponibles en cada momento.
Utilice el patrón callback para un sistema cliente/servidor en el que los clientes realicen operaciones costosas, y cuando una de las dos reglas siguientes sea cierta:
En algunos sistemas distribuidos, un servidor debe emplear mucho tiempo de procesamiento para satisfacer las peticiones de los clientes. En esos sistemas, probablemente la comunicación síncrona no sea la mejor opción, si el servidor mantiene contacto con el cliente durante el procesamiento, utilizara recursos que podrían ser aplicados a otra tareas como la comunicación con otros clientes.
Imagine un sistema en el que el usuario desea ejecutar una consulta compleja sobre una tabla de una base de datos moderadamente grandes; como por ejemplo, una tabla con información sobre clientes con más de 10.000 registros. En un sistema cliente/servidor síncrono, el proceso cliente tendría que esperar, posiblemente durante un largo periodo de tiempo, hasta que el servidor finalizara. El servidor ejecutaría la petición y gestionaría todos los posibles pasos para organizar, formatear y empaquetar los datos, hasta que finalmente pudiera devolver los datos del cliente.
La alternativa es crear un sistema que permita a un cliente registrarse en el servidor para recibir notificaciones. Cuando el servidor completa la operación solicita, envía una notificación al cliente. En el tiempo transcurrido hasta que finaliza la operación, tanto el cliente como el servidor son libres de utilizar sus recursos para propósitos más productivos que mantener el enlace de comunicación específico.
El patrón callback proporciona esta capacidad, permitiendo la comunicación cliente/servidor asíncrona. El proceso consta de tres pasos principales:
Por ejemplo, el cliente contacta con el servidor y realiza una petición. Normalmente, el cliente solicita información, como las estadísticas de ventas del año 2001, o una acción como puede ser introducir al usuario en el viaje organizado. Como el cliente no espera una respuesta inmediata, proporciona la información necesaria para que el servidor pueda contactar con el.
Como por ejemplo del patrón Callback, considere un padre y sus tres hijos que salen de compras. El hijo numero 1 quiere un Robot Láser; el hijo numero 2 quiere un ordenador portátil y el hijo numero 3 el ultimo libro sobre Java publicado por Prentice Hall. Sin embargo:
Afortunadamente, el padre puede dejar a sus hijos en la sala de juegos recreativos, o dejarlos pelear entre si, o cualquier otra cosa que se le ocurra. Entonces el padre puede ir a compra uno de los artículos, volver a dejarlo, ir a comprar el otro y etc.
Se puede utilizar el patrón callback en múltiples aplicaciones:
Página siguiente ![]() |
Trabajos relacionados
Ver mas trabajos de Arquitectura y Diseño |
|
Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.
Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.
Ingrese el e-mail y contraseña con el que está registrado en Monografias.com
|
|