Accesos directos a las distintas zonas del curso
Ir a los contenidos
Ir a menú navegación principal
Ir a menú pie de página
Subject code : 71023022
Índice
1.1. Definiciones. 1.2. Historia de la computación distribuida. 1.3. Tipos de computación distribuida. 1.4. Fortalezas y debilidades. 1.5. Fundamentos de sistemas operativos 1.6. Fundamentos de red. 1.7. Fundamentos de ingeniería del software.
La computación distribuida es en la actualidad la tecnología estándar de desarrollo de aplicaciones basadas en la Web. Para ver las tendencias actuales es preciso hacer un análisis de las historia y fundamentos asociados a este paradigma global de programación, mostrando en detalle los factores que inciden en la propia computación distribuida: la red de comunicación, los sistemas operativos subyacentes y el proceso de desarrollo software.
Índice 2.1. Comunicación entre procesos 2.2 Paradigmas y abstracción. 2.3. Aplicación de ejemplo. 2.4. Paradigmas para las aplicaciones distribuidas. 2.5. Factores a tener en cuenta en la decisión del paradigma.
Existen diferentes aproximaciones a la computación distribuida, denominadas paradigmas. Entre ellas se pueden destacar los modelos de desarrollo basados en modelo cliente-servidor, basados en pares de iguales, basados en mensajes o los modelos más “antiguos” que usaban RPC (aunque en la actualidad hay otro modelo RPC, denominado XML-RPC que se emplea de manera extensa). El módulo pretende mostrar las características más relevantes de cada una de estas aproximaciones.
Índice 3.1. Introducción. 3.2. El API de sockets de datagramas (UDP). 3.3. El API de sockets de flujo (TCP). 3.4. Sockets seguros.
Uno de los primeros modelos de programación distribuida que se emplearon (y que aún sigue en vigor) es el basado en sockets (conectores). Estos conectores son flujos de información entre dos servicios, usualmente en computadores diferentes, que definen su propio protocolo de intercambio de información. El módulo presenta los dos protocolos basados en conectores: UDP y TCP, finalizando con una presentación al uso de conectores seguros en entornos donde se necesita proteger la información que se transmite entre los servicios.
Índice 4.1. Definición y características. 4.2. Implementación de un servicio de red. 4.3. Servidores orientados y no orientados a conexión. 4.4. Servidores iterativos y concurrentes. 4.5. Servidores con estado.
El paradigma más empleado en la computación distribuida es, sin lugar a duda, el modelo cliente-servidor. En dicho modelo un cliente accede a un servicio proporcionado por un servidor y este le proporciona la información que necesita a través de dicho servicio. Ejemplos de este modelo puede ser la propia Web, a través de su protocolo HTTP donde el servicio ofrecido en el acceso a la información almacenada y la información transmitida es la propia página HTML o equivalente. El módulo muestra los diferentes componentes involucrados la comunicación y presenta varias clasificaciones de los servidores relativa a diferentes aspectos del paradigma cliente-servidor.
Índice 5.1. Paso de mensajes versus Objetos distribuidos. 5.2. Arquitectura de un sistema de objetos distribuidos: RPC y RMI. 5.3. Invocaciones remotas mediante RMI: Arquitectura y API. 5.4. Ejemplo de aplicación RMI. 5.5. RMI avanzado.
RMI (Remote Method Invocation) es una capa de servicios distribuidos (búsqueda de objetos remotos, invocación de interfaces y métodos, etc.) que permite desarrollar aplicaciones distribuidas basadas en el modelo cliente-servidor y centradas en la metodología de desarrollo orientada a objetos. El módulo presenta los fundamentos de RMI, además de características avanzadas que pueden ser muy útiles en entornos profesionales.
Índice 6.1. Introducción a CORBA. 6.2. Java IDL 6.3. Factores de diseño con CORBA.
CORBA, al igual que RMI, proporciona la capa de servicios distribuidos que permite implementar soluciones software distribuidas, La diferencia fundamental radica en no emplear objetos para el desarrollo de la solución (lo que permite usar cualquier tipo de lenguaje de programación) ni un solo lenguaje de programación (RMI usa solo Java), lo que obliga a definir un lenguaje intermedio (IDL, Interface Definition Language) que debe ser traducido al lenguaje que solicitará/implementará el servicio distribuido correspondiente. El módulo muestra los fundamentos de CORBA, su implementación Java mediante Java IDL y los factores de diseño del software distribuido que se deben tener en cuenta a la hora de emplear esta tecnología.
Índice 7.1. ¿Qué es un servicio Web? 7.2. Funcionalidad de transporte de WSA: SOAP 7.3. Funcionalidad de descripción de WSA: WSDL 7.4. Funcionalidad de descubrimiento de WSA: UDDI 7.5. Implementación de la arquitectura WSA
Los servicios Web son parte de la definición de la arquitectura basada en servicios (SOA). Dicha arquitectura define unas reglas de comportamiento estándar que permiten la definición de servicios mediante XML (WDSL), la búsqueda y localización de servicios (UDDI) y las invocaciones a dichos servicios (SOAP). Todas estas reglas de funcionamiento se implementan mediante el uso de estándares basados en XML, lo que permiten que cualquier tipo marco de desarrollo pueda exportar sus servicios con independencia de la plataforma en la que se desarrollen. El módulo muestra las características de SOA en los ámbitos de comunicación, descripción y descubrimiento.