Paradigmas y Abstracción Abstracción: Es la idea de encapsulamiento, o de ocultamiento de detalles. “Habitualmente usamos la abstracción cuando no es necesario conocer los detales exactos de como algo funciona o se representa, porque podemos utilizarlo en su forma simplificada.” Paradigma: Un patrón, o modelo. En el estudio de cualquier materia de gran complejidad, es útil identificar los patrones o modelos básicos y clasificar los detalles de acuerdo con estos modelos. Los paradigmas van a presentarse ordenados basándose en su nivel de abstracción.
ING. MSC. EUCLIDES PANDURO PADILLA 2
Paradigmas y Abstracción
ING. MSC. EUCLIDES PANDURO PADILLA 3
Paradigmas para aplicaciones distribuidas
ING. MSC. EUCLIDES PANDURO PADILLA 4
Paso de mensajes Es la aproximación más básica a la comunicación entre procesos es el paso de mensaje. El paso de mensajes es el paradigma fundamental para aplicaciones distribuidas. Un proceso envía un mensaje que representa una petición. El mensaje se entrega a un receptor, que procesa la petición y envía un mensaje como respuesta.
ING. MSC. EUCLIDES PANDURO PADILLA 5
Paso de mensajes La réplica puede disparar posteriores peticiones, que lleven a sucesivas respuestas, y así en adelante. Las operaciones básicas necesarias para dar soporte al paradigma de paso de mensajes son enviar y recibir. Usando un socket, una construcción lógica, dos procesos pueden intercambiarse datos.
ING. MSC. EUCLIDES PANDURO PADILLA 6
Paso de mensajes Paso de mensajes:
ING. MSC. EUCLIDES PANDURO PADILLA 7
Paradigma cliente servidor Un proceso, el servidor interpreta el papel de proveedor de servicio, espe- rando de forma pasiva la llegada de peticiones. El otro, el cliente, invoca determinadas peticiones al servidor y aguarda sus respuestas. El modelo cliente-servidor proporciona una abstracción eficiente para facilitar servicios de red. Las operaciones necesarias incluyen aquellas que permiten a un proceso servidor escuchar y aceptar peticiones, y a un cliente solicitar dichas peticiones y aceptar respuestas.
ING. MSC. EUCLIDES PANDURO PADILLA 8
Paradigma cliente servidor El paradigma cliente-servidor es inherente a muchas aplicaciones distribuidas. El API de sockets orientados a conexión proporciona operaciones diseñadas específicamente para servidores y clientes, asimismo, el API de llamada a procedimientos remotos [Remóte Procedure Call) y el API de Java de invocación de métodos remotos (.Remóte Method lnvocation)
Paradigma cliente servidor Muchos servicios de internet dan soporte a aplicaciones cliente – servidor (se conocen como protocolos), HTTP, FTP, DNS, Finger, gopher y otros. Vamos a implementar un sistema de subasta, para lo cual es suficiente los dos tipos de paradigmas (paso por mensajes y cliente – servidor)
ING. MSC. EUCLIDES PANDURO PADILLA 11
Paradigma cliente servidor SISTEMA DE SUBASTAS. Cada participante, así como el programa de subastas, asumen a la vez el papel de cliente y servidor, de la siguiente forma: Para el control de la sesión: Como servidor, un participante espera escuchar el anuncio del subastador (1) cuando comience la sesión (2) en el momento en el que se produzca un cambio en la puja máxima, y (3) cuando la sesión termine.
ING. MSC. EUCLIDES PANDURO PADILLA 12
Paradigma cliente servidor Como servidor, el subastador envía una petición que anuncia los tres tipos de eventos antes comentados. Para la aceptación de pujas: Como servidor, un participante envía una nueva puja a un servidor. Como cliente, un subastador acepta nuevas pujas y actualiza la puja máxima.
ING. MSC. EUCLIDES PANDURO PADILLA 13
Paradigmas de igual a igual peer to peer Los procesos participantes interpretan los mismos papeles, con idénticas capacidades y responsabilidades. Cada participante puede solicitar una petición a cualquier otro participante y recibir una respuesta. El paradigma peer-to-peer resulta más apropiado para aplicaciones como mensajería instantánea, transferencia de ficheros, video conferencias, y trabajo colaborativo.
ING. MSC. EUCLIDES PANDURO PADILLA 14
Paradigmas de igual a igual peer to peer Con este paradigma p2p. 1. Un participante puede conectarse al subastador directamente. 2. El subastador posteriormente contacta con cada uno de los participantes para iniciar la sesión de subasta. 3. Cada participante puede obtener el estado y realizar una puja. 4. Al concluir, el subastador notifica al ganador. 5. El resto puede conocer el resultado con el propio subastador.
ING. MSC. EUCLIDES PANDURO PADILLA 15
Paradigma de sistema de mensaje O middleware Orientado a Mensaje es una elaboración del paradigma básico de paso de mensajes. En este paradigma, un sistema de mensajes sirve de intermediario entre procesos separados e independientes. El sistema de mensajes actúa como un conmutador para mensajes, a través del cual los procesos intercambian mensajes asíncronamente, de una forma desacoplada. Un emisor deposita un mensaje en el sistema de mensajes, el cual redirige el mismo a la cola de mensajes asociada a dicho receptor. Una vez que se ha enviado, el emisor queda liberado para que realice cualquier otra tarea.
ING. MSC. EUCLIDES PANDURO PADILLA 16
Paradigma de sistema de mensaje
ING. MSC. EUCLIDES PANDURO PADILLA 17
Modelo de mensajes punto a punto Un sistema de mensajes redirige un mensaje desde el emisor hasta la cola de mensajes del receptor. A diferencia del modelo básico de paso de mensajes, el middleware proporciona un depósito de los mensajes que permite que e l envío y la recepción estén desacoplados. Por medio del middleware, Un emisor deposita el mensaje en la cola de mensajes del receptor. Un proceso receptor extrae los mensajes de su cola de mensajes y procesa cada mensaje de forma correspondiente.
ING. MSC. EUCLIDES PANDURO PADILLA 18
Modelo de mensajes punto a punto Comparado con el modelo básico de paso de mensajes, el paradigma de mensajes punto a punto proporciona una abstracción adicional para operaciones asíncronas. Para conseguir el mismo efecto con el paso de mensajes básico, un programador debe hacer uso de hilos (threads) o de procesos hijos.
ING. MSC. EUCLIDES PANDURO PADILLA 19
Modelo de mensajes publicación/suscripción Cada mensaje se asocia con un determinado tema o evento. Las aplicaciones interesadas en el suceso de un específico evento se pueden suscribir a los mensajes de dicho evento. Cuando el evento que se aguarda ocurre, el proceso publica un mensaje anunciando el evento o asunto. El middleware del sistema de mensajes distribuye el mensaje a todos los suscriptores. La operación publicar permite al proceso difundir a un grupo de procesos, y la operación suscribir permite a un proceso escuchar dicha difusión de mensajes.
ING. MSC. EUCLIDES PANDURO PADILLA 20
Modelo de mensajes publicación/suscripción El sistema de subastas se realizaría de la siguiente forma: Cada participante se suscribe a los mensajes del evento comienzo-subasta. El subastador anuncia el comienzo de la sesión de subasta enviando un mensaje de evento comienzo-subasta. Tras recibir el evento de comienzo-subasta, cada participante se suscribe a los mensajes del evento comienzo-subasta El subastador se suscribe a los mensajes del evento nueva-puja. El participante que desee realizar una nueva puja lanzará el evento nueva- puja, que será reenviado al subastador. Al final de la sesión el subastador lanzará el mensaje fin-subasta para informar a todos del resultado. ING. MSC. EUCLIDES PANDURO PADILLA 21 Paradigmas de computación distribuida -1