Monografias.com > Arquitectura y Diseño
Descargar Imprimir Comentar Ver trabajos relacionados

Patrón CallBack



Partes: 1, 2

    1. Propiedades del
      patrón
    2. Aplicabilidad
    3. Descripción
    4. Implementación
    5. Ventajas en
      inconvenientes
    6. Variaciones
      del Patrón
    7. Patrones
      relacionados
    8. Bibliografía

    Exposición sobre:
    "Patrón CallBack"
    (Retrollamada)

    Propiedades del
    patrón

    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.

    Introducción

    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.

    • El cliente envía una petición para
      recuperar un proyecto del servidor, ofreciendo la
      información necesaria para la retrollamada junto con la
      petición.
    • El cliente se desconecta del servidor y permite que
      este emplee el tiempo necesario para recuperar el
      proyecto.
    • Cuando el servidor completa la tarea, conecta con el
      cliente y envía información del proyecto
      solicitado.

    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.

    Aplicabilidad

    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:

    • Desea conservar los recursos del servidor para una
      comunicación activa.
    • El cliente puede y debe continuar trabajando hasta
      que la información esté disponible. Esto puede
      lograrse simplemente haciendo que el cliente sea
      multithreaded.

    Descripción

    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:

    1. 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.

    2. Registro del cliente: el cliente realiza una
      solicitud, proporcionando información de contacto
      servidor.
    3. Procesamiento en el servidor: el servidor procesa la
      petición del cliente y formatea una respuesta en caso
      de que sea necesario. Durante ese periodo de tiempo, el
      cliente puede realizar otras tareas, u el servidor puede
      establecer comunicación con otros clientes.

      • La información solicitada por el cliente.
        Esta aproximación es utilizada generalmente cuando
        el cliente nenecita todos los datos o cuando el
        envió de los datos ocupa relativamente poco ancho de
        banda.
      • Un mensaje informando al cliente de que los datos
        o parte de los datos están disponibles. Esta
        opción se utiliza generalmente cuando hay una gran
        cantidad de información, de forma que el cliente
        pueda elegir entre recuperar una parte de los datos una vez
        que estén disponibles, o solo los datos que necesita
        de entre todos los solicitados.

      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:

      • Encontrar todas estas cosas puede llevar mucho
        tiempo, especialmente no se venden en un mismo comercio.
      • Los hijos solo son capaces de prestar atención durante cinco minutos y se
        vuelven locos si tienen que estar de compras durante mucho
        tiempo.
      • El padre solo puede comprar una o dos cosas a la
        vez si comprara mas, su rendimiento
        caería.

      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:

      • Los agentes de software,
        ahora muy populares en la Web,
        pueden utilizar retrollamadas para notificar al cliente que
        la petición ha sido completada. Por ejemplo, imagine
        un agente de búsqueda de empleo
        en Monster.com. Un usuario puede introducir un criterio de
        búsqueda para el empleo que desea obtener; por
        ejemplo podría estar buscando uno en el que se
        pidiera una buena nariz para hacer de catador de cerveza.
        Posteriormente, el servidor notifica al usuario cuando hay
        un puesto disponible de catador en una
        cervecería.
      • Las aplicaciones que requieren operaciones
        costosas de bases de
        datos, como minería de datos, utilizan
        frecuentemente el patrón CallBack para incrementar
        el número de clientes a los que ofrecen un servicio
        de manera efectiva.
      • El patrón CallBack puede ser utilizado en
        aplicaciones que tienen flujo de trabajo
        detallado en el servidor. Por ejemplo un servidor utilizado
        en procesamiento ordenado, a menudo ejecuta una serie de
        operaciones una vez que un cliente ha realizado el pedido.
        El servidor suele comprobar inventario, valida el pago y la
        información de distribución, y se coordina con otros
        sistemas de
        información, facturación y entrega de
        pedidos. El patrón CallBack permite que el servidor
        notifique a los clientes el
        estado de pedido después de haber ejecutado los
        pasos anteriores. Como estas operaciones pueden llevar
        horas o días, los clientes también prefieren
        una solución de este estilo.

       

    4. Retrollamada del servidor: cuando el servidor
      completa la solicitud del cliente, le envía un mensaje
      de notificación. La notificación normalmente
      tiene una de las dos formas siguientes:

    Partes: 1, 2

    Página siguiente 

    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.

    Categorias
    Newsletter