Asignatura grado en ingeniería en tecnologías de la información

Asignatura grado en ingeniería en tecnologías de la información

APLICACIONES DISTRIBUIDAS

Subject code: 71023022

SUBJECT NAME
APLICACIONES DISTRIBUIDAS
CODE
71023022
SESSION
2024/2025
DEPARTMENT
SISTEMAS DE COMUNICACIÓN Y CONTROL
DEGREE IN WHICH IT IS OFFERED
GRADO EN INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN
COURSE
  • ESPECÍFICO PARA INGENIEROS TÉCNICOS EN INFORMÁTICA DE GESTIÓN EN UNED
    • OPTATIVAS COURSE
    • SEMESTER 1
    • OBLIGATORIAS
  • ESPECÍFICO PARA INGENIEROS TÉCNICOS EN INFORMÁTICA DE GESTIÓN
    • OPTATIVAS COURSE
    • SEMESTER 1
    • OBLIGATORIAS
  • GRADO EN INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN
    • TERCER COURSE
    • SEMESTER 1
    • OBLIGATORIAS
CREDITS NUMBER
6
HOURS
150
LANGUAGES AVAILABLE
CASTELLANO

En la actualidad la diversificación de los recursos de computación asociados a los diferentes proyectos de desarrollo está íntimamente ligada a la estructura de red disponible y a su evolución. Internet, y el protocolo TCP/IP, marcó un crecimiento exponencial en la disponibilidad de dichos recursos obligando a modificar la visión tradicional del modelo de programación sobre un computador único. El objetivo principal de la asignatura es mostrar las diferentes alternativas de computación distribuida desde el punto de vista práctico, mediante el uso de un lenguaje de programación como Java que dispone de una gran cantidad de ejemplos y desarrollos que el programador y/o analista puede emplear en sus propios proyectos. Para ello se presentarán las diferentes tecnologías existentes, RMI y CORBA, que representan los ejemplos de middlewares aplicados en el paradigma cliente-servidor, finalizando el estudio con las tendencias más actuales en definición e implementación de servicios Web. 

En la materia de Tecnologías Web y Aplicaciones distribuidas del Grado en Ingeniería de las Tecnologías de la Información se tres asignaturas en el siguiente orden:

  • Aplicaciones Distribuidas: De carácter obligatorio, se imparte en el primer cuatrimestre del tercer curso de dicho grado y supone una carga de 6 créditos ECTS.

  • Tecnologías Web: De carácter obligatorio, se imparte en el segundo cuatrimestre del tercer curso de dicho grado y supone una carga de 6 créditos ECTS.

  • Tecnologías y Programación Integrativas: De carácter obligatorio, se imparte en el primer cuatrimestre del cuarto curso de dicho grado y supone una carga de 6 créditos ECTS.

Esta asignatura es, por tanto, la primera asignatura que el estudiante deberá afrontar dentro de dicha materia. Es un hecho que la diversificación de los recursos de computación en el momento actual traspasa los límites de la computación tradicional, basada en potentes y caros computadores. Estos recursos se encuentran distribuidos a lo largo de redes de comunicación en diferentes localizaciones, listos para ser usados en diferentes ámbitos. Sin embargo, desde el punto de vista de la programación, la accesibilidad a los recursos implica un conjunto de reglas de acceso que permita de manera transparente el uso de dichos recursos. De esta manera surge de manera natural el concepto de middleware (capa de servicios) que proporciona un conjunto de servicios a los programadores que les permite diseñar y construir aplicaciones software distribuidas en diferentes medios de comunicación, principalmente redes. Esta capa de servicios puede ser muy compleja o casi inexistente, dependiendo del tipo de paradigma de computación distribuida empleado en la construcción del software.

Los middlewares de computación distribuida más conocidos son CORBA (Common Object Request Broker Agent, definido por el OMG) y RMI (Remote Method Invocation, de Sun Microsystems). CORBA se caracteriza por su independencia de lenguaje y plataforma, pero a la vez por su complejidad de implementación. RMI, por el contrario, es más simple pero está limitado al mundo Java, lo que hace que sea una solución más limitada. Ambos middlewares disponen de normas de funcionamiento y de protocolos propios que pueden resultar complejos de comprender y “pesados” desde el punto de vista de la transmisión de información. En la actualidad ha surgido otra tecnología de computación distribuida, la arquitectura SOA (Service Oriented Architecture) que pretende estandarizar las normas de funcionamiento para que la transparencia de ubicación sea completa (independiente de lenguaje de programación y/o sistema operativo) y la comunicación se realice mediante el estándar XML bajo distintas normas (SOAP, WSDL, UDDI),

Esta asignatura pretende centrarse en los conocimientos y mecanismos necesarios para abordar una aproximación profesional al diseño e implementación de soluciones software en el ámbito de la computación distribuida, presentando las bases y conceptos necesarios para usar la terminología adecuada en los diferentes paradigmas existentes. También se realiza una presentación detallada de los diferentes middlewares, CORBA y RMI, incidiendo en dichas tecnologías y presentando sus antecedentes (sockets y RPC). Finalmente se introduce de manera breve y concisa la tecnología SOA y se trabaja en la definición e implementación de servicios Web. 

La distribución temporal de la asignatura se ha adecuado de forma que se premia el componente práctico mediante la realización de actividades que complementan de manera concreta diferentes áreas del temario de la asignatura. En concreto para cada módulo de la asignatura se desarrollará un conjunto de preguntas de autoevaluación que se elaborarán en la propia plataforma de formación y que permitirá comprobar la efectividad del aprendizaje. Junto a los cuestionarios se fomentará el uso de los foros de discusión sobre los contenidos teóricos que promueva de forma colaborativa la generación de preguntas frecuentas y debates interesantes sobre diferentes aspectos teóricos. Adicionalmente se han programado varias actividades prácticas que pretenden reforzar el aprendizaje de diferentes tecnologías de computación distribuida, desde sus principios (Sockets) hasta los middlewares más usados como paradigmas cliente-servidor: CORBA y RMI. Para finalizar el curso se deberá realizar un proyecto final que consistirá en una implementación/uso de un caso real de entorno de computación distribuida.