Código de la asignatura | 1398 |
---|---|
Nº Créditos ECTS | 6 |
Tipo | Obligatoria |
Duración | Semestral |
Idiomas | Castellano |
Planes de estudio | |
Profesor(es) | |
Año académico | 2024-25 |
Los últimos avances en las redes de comunicaciones han incrementado la importancia de la computación distribuida en las disciplinas de las ciencias de la computación.
La computación distribuida es aquella que se lleva a cabo en un sistema distribuido, que se define como un conjunto de computadores interconectados a través de una red y que son capaces de colaborar entre sí para lograr un fin común.
Esta asignatura explora las formas en que lo programas, ejecutando en computadores independientes, colaboran con otros con el fin de llevar a cabo una determinada tarea de computación, tal como los servicios de red o las aplicaciones basadas en la Web. En la asignatura se estudia la evolución de los sistemas distribuidos, los paradigmas de programación distribuida existentes y las APIs, conjuntos de herramientas, protocolos y estándares necesarios para desarrollar un sistema distribuido.
Es altamente recomendable para el aprovechamiento de esta asignatura tener conocimientos de redes de computadores, de sistemas operativos y de programación.
SEMANAS (*) | UNIDADES DIDÁCTICAS | ACTIVIDADES DIDÁCTICAS |
---|---|---|
Semana 1 | Unidad 1. Introducción a la computación distribuida 1.1. Conceptos básicos 1.2. Computación monolítica, distribuida, paralela y cooperativa 1.3. Ventajas, inconvenientes y desafíos de los sistemas distribuidos 1.4. Conceptos previos sobre sistemas operativos: procesos y concurrencia 1.5. Conceptos previos sobre redes 1.6. Conceptos previos sobre Ingeniería del Software 1.7. Organización de este manual 1.8. Conclusiones |
|
Semanas 2 y 3 | Unidad 2. Paradigmas de computación distribuida y comunicación entre procesos 2.1. Comunicación entre procesos 2.2. Sincronización de eventos 2.2.1. Supuesto 1: envío síncrono y recepción síncrona 2.2.2. Supuesto 2: envío asíncrono y recepción síncrona 2.2.3. Supuesto 3: envío síncrono y recepción asíncrona 2.2.4. Supuesto 4: envío asíncrono y recepción asíncrona 2.3. Interbloqueos y temporizadores 2.4. Representación y codificación de datos 2.5. Clasificación y descripción de los paradigmas de computación distribuida 2.6. Java como entorno de desarrollo de sistemas distribuidos |
|
Semana 4 | Unidad 3. API de paso de mensajes con Sockets 3.1. API de sockets, tipos y diferencias 3.2. Sockets de tipo datagrama 3.3. Sockets de tipo stream 3.4. Solución a interbloqueos: temporizadores y eventos no bloqueantes 3.5. Seguridad en sockets 3.6. Conclusiones |
|
Semana 5 | Unidad 4. Paradigma Cliente-Servidor 4.1. Características y conceptos fundamentales de los sistemas distribuidos de tipo cliente-servidor 4.2. Proceso de diseño e implementación de un sistema cliente-servidor 4.3. Problemas de direccionamiento no orientado a conexión con clientes anónimos 4.4. Servidores iterativos y concurrentes 4.5. Información de estado y de sesión 4.5.1. Información de sesión 4.5.2. Información de estado global 4.6. Clientes complejos recibiendo respuestas asíncronas desde el lado servidor 4.7. Servidores complejos actuando como intermediadores entre varios clientes |
|
Semana 6 | Unidad 5. Comunicación por Multidifusión 5.1. Introducción a la multidifusión y usos comunes 5.2. Fiabilidad y ordenación en los sistemas multidifusión 5.3. Implementación Java de sistemas de multidifusión 5.4. Ejemplo de uso de la comunicación en grupo entre iguales 5.5. Implementaciones de multidifusión fiable 5.6. Multitransmisión a nivel de aplicación 5.7. Conclusiones |
|
Semanas 7 y 8 | Unidad 6. Objetos Distribuidos 6.1. Introducción 6.2. Arquitectura de una aplicación basada en objetos distribuidos 6.3. Tecnologías de sistemas de objetos distribuidos 6.4. Capas software de Java RMI en el lado cliente y en el lado servidor 6.5. API Java RMI de objetos distribuidos 6.6. Pasos para construir una aplicación RMI 6.7. Uso de callback en RMI 6.8. Descarga dinámica de resguardos de objetos remotos y gestor de seguridad RMI 6.9. Conclusiones |
|
Semana 9 |
Unidad 7. HTML, XML, HTTP y CGI 7.1. Introducción 7.2. Lenguaje HTML 7.3. Lenguaje XML 7.4. Protocolo de Internet: HTTP 7.5. Uso de contenidos dinámicos: manejo de formularios y CGI 7.6. Manejo de datos de estado y sesión en Internet 7.7. Conclusiones |
|
Semana 10 | Unidad 8. Objetos distribuidos multi-lenguaje: CORBA 8.1. Introducción 8.2. Arquitectura CORBA 8.3. Lenguaje de descripción de interfaz en CORBA 8.4. Protocolos de interoperabilidad GIOP 8.5. Referencias a objeto remoto IOR 8.6.Servicio de nombrado CORBA 8.7. Ejemplo en IDL Java 8.8. Pasos de diseño, compilación y ejecución en IDL Java 8.9. Conclusiones |
|
Semanas 11 y 12 | Unidad 9. Servlets y Servicios Web 9.1. Introducción 9.2. Applets 9.3. Introducción a los Servlets 9.4. Servlets HTTP y su funcionamiento 9.5. Mantenimiento de la información de estado en Servlets 9.5.1. Campos ocultos de formularios 9.5.2. Cookies 9.5.3. Variables de Servlet 9.5.4. Objeto session 9.6. Servicios web 9.7. Protocolo SOAP 9.8. Breve reseña de la arquitectura REST 9.9. Conclusiones |
|
Semanas 13, 14 y 15 |
Unidad 10. Paradigmas Avanzados de Computación Distribuida 10.1. Introducción 10.2. Paradigma MOM 10.3. Paradigma de agentes software móviles 10.4. Paradigma de espacio de objetos 10.5. Computación colaborativa 10.6. Tendencias futuras en computación distribuida 10.7. Conclusiones |
|
Resto de semanas hasta finalización del semestre | Estudio y preparación para el examen final, celebración del examen final y cierre de actas. |
Tipo de actividad | Actividades planificadas | Peso clasificación |
---|---|---|
Actividades de aprendizaje | 4 | 10% |
Actividades de Ebaluación Continua (AEC) | 4 | 20% |
Controles | 4 | 10% |
Examen final | 0 | 60% |
Total | 100% |
Para aprobar la asignatura, es necesario obtener una calificación mínima de 5 en el examen final presencial, así como en la calificación total del curso, una vez realizado el cómputo ponderado de las calificaciones obtenidas en las actividades didácticas y en el examen final presencial.
Si un estudiante no aprueba la asignatura en la convocatoria ordinaria podrá examinarse en la convocatoria de septiembre.
Las fechas previstas para la realización de todas las actividades se indican en el aula virtual de la asignatura.
Según la Real Academia Española, “plagiar” significa copiar en lo sustancial obras ajenas dándolas como propias. Dicho de otro modo, plagiar implica expresar las ideas de otra persona como si fuesen propias, sin citar la autoría de las mismas. Igualmente, la apropiación de contenido puede ser debida a una inclusión excesiva de información procedente de una misma fuente, pese a que esta haya sido citada adecuadamente. Teniendo en cuenta lo anterior, el estudiante deberá desarrollar sus conocimientos con sus propias palabras y expresiones. En ningún caso se aceptarán copias literales de párrafos, imágenes, gráficos, tablas, etc. de los materiales consultados. En caso de ser necesaria su reproducción, esta deberá contemplar las normas adecuadas para la citación académica.
Los documentos que sean presentados en las actividades académicas podrán ser sometidos a diferentes mecanismos de comprobación de la originalidad (herramientas antiplagios que detectan coincidencias de texto con otras fuentes, comparación con trabajos de otros estudiantes, comparación con información publicada en Internet, etc). El profesor valorará si el trabajo presentado cuenta con los criterios de originalidad exigidos o, en su caso, se atribuye adecuadamente la información no propia a las fuentes correspondientes. La adjudicación como propia de información que corresponde a otros autores podrá suponer el suspenso de la actividad.
Los documentos presentados en las actividades académicas podrán ser almacenados en formato papel o electrónico y servir de comparación con otros trabajos de terceros, a fin de proteger la originalidad de la fuente y evitar la apropiación indebida de todo o parte del trabajo del estudiante. Por tanto, podrán ser utilizados y almacenados por la universidad, a través del sistema que estime, con el único fin de servir como fuente de comparación de cualquier otro trabajo que se presente.
El sistema de calificación de todas las actividades didácticas es numérico del 0 a 10 con expresión de un decimal, al que se añade su correspondiente calificación cualitativa:
0 - 4.9: Suspenso (SU) 5.0 - 6.9: Aprobado (AP) 7.0 - 8.9: Notable (NT) 9.0 - 10: Sobresaliente (SB)
(RD 1125/2003, de 5 de septiembre, por lo que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y con validez en todo el territorio nacional).
Código de la asignatura | 1398 |
---|---|
Nº Créditos ECTS | 6 |
Tipo | Obligatoria |
Duración | Semestral |
Idiomas | Castellano |
Planes de estudio | |
Profesor(es) | |
Año académico | 2024-25 |
Los últimos avances en las redes de comunicaciones han incrementado la importancia de la computación distribuida en las disciplinas de las ciencias de la computación.
La computación distribuida es aquella que se lleva a cabo en un sistema distribuido, que se define como un conjunto de computadores interconectados a través de una red y que son capaces de colaborar entre sí para lograr un fin común.
Esta asignatura explora las formas en que lo programas, ejecutando en computadores independientes, colaboran con otros con el fin de llevar a cabo una determinada tarea de computación, tal como los servicios de red o las aplicaciones basadas en la Web. En la asignatura se estudia la evolución de los sistemas distribuidos, los paradigmas de programación distribuida existentes y las APIs, conjuntos de herramientas, protocolos y estándares necesarios para desarrollar un sistema distribuido.
Es altamente recomendable para el aprovechamiento de esta asignatura tener conocimientos de redes de computadores, de sistemas operativos y de programación.
SEMANAS (*) | UNIDADES DIDÁCTICAS | ACTIVIDADES DIDÁCTICAS |
---|---|---|
Semana 1 | Unidad 1. Introducción a la computación distribuida 1.1. Conceptos básicos 1.2. Computación monolítica, distribuida, paralela y cooperativa 1.3. Ventajas, inconvenientes y desafíos de los sistemas distribuidos 1.4. Conceptos previos sobre sistemas operativos: procesos y concurrencia 1.5. Conceptos previos sobre redes 1.6. Conceptos previos sobre Ingeniería del Software 1.7. Organización de este manual 1.8. Conclusiones |
|
Semanas 2 y 3 | Unidad 2. Paradigmas de computación distribuida y comunicación entre procesos 2.1. Comunicación entre procesos 2.2. Sincronización de eventos 2.2.1. Supuesto 1: envío síncrono y recepción síncrona 2.2.2. Supuesto 2: envío asíncrono y recepción síncrona 2.2.3. Supuesto 3: envío síncrono y recepción asíncrona 2.2.4. Supuesto 4: envío asíncrono y recepción asíncrona 2.3. Interbloqueos y temporizadores 2.4. Representación y codificación de datos 2.5. Clasificación y descripción de los paradigmas de computación distribuida 2.6. Java como entorno de desarrollo de sistemas distribuidos |
|
Semana 4 | Unidad 3. API de paso de mensajes con Sockets 3.1. API de sockets, tipos y diferencias 3.2. Sockets de tipo datagrama 3.3. Sockets de tipo stream 3.4. Solución a interbloqueos: temporizadores y eventos no bloqueantes 3.5. Seguridad en sockets 3.6. Conclusiones |
|
Semana 5 | Unidad 4. Paradigma Cliente-Servidor 4.1. Características y conceptos fundamentales de los sistemas distribuidos de tipo cliente-servidor 4.2. Proceso de diseño e implementación de un sistema cliente-servidor 4.3. Problemas de direccionamiento no orientado a conexión con clientes anónimos 4.4. Servidores iterativos y concurrentes 4.5. Información de estado y de sesión 4.5.1. Información de sesión 4.5.2. Información de estado global 4.6. Clientes complejos recibiendo respuestas asíncronas desde el lado servidor 4.7. Servidores complejos actuando como intermediadores entre varios clientes |
|
Semana 6 | Unidad 5. Comunicación por Multidifusión 5.1. Introducción a la multidifusión y usos comunes 5.2. Fiabilidad y ordenación en los sistemas multidifusión 5.3. Implementación Java de sistemas de multidifusión 5.4. Ejemplo de uso de la comunicación en grupo entre iguales 5.5. Implementaciones de multidifusión fiable 5.6. Multitransmisión a nivel de aplicación 5.7. Conclusiones |
|
Semanas 7 y 8 | Unidad 6. Objetos Distribuidos 6.1. Introducción 6.2. Arquitectura de una aplicación basada en objetos distribuidos 6.3. Tecnologías de sistemas de objetos distribuidos 6.4. Capas software de Java RMI en el lado cliente y en el lado servidor 6.5. API Java RMI de objetos distribuidos 6.6. Pasos para construir una aplicación RMI 6.7. Uso de callback en RMI 6.8. Descarga dinámica de resguardos de objetos remotos y gestor de seguridad RMI 6.9. Conclusiones |
|
Semana 9 |
Unidad 7. HTML, XML, HTTP y CGI 7.1. Introducción 7.2. Lenguaje HTML 7.3. Lenguaje XML 7.4. Protocolo de Internet: HTTP 7.5. Uso de contenidos dinámicos: manejo de formularios y CGI 7.6. Manejo de datos de estado y sesión en Internet 7.7. Conclusiones |
|
Semana 10 | Unidad 8. Objetos distribuidos multi-lenguaje: CORBA 8.1. Introducción 8.2. Arquitectura CORBA 8.3. Lenguaje de descripción de interfaz en CORBA 8.4. Protocolos de interoperabilidad GIOP 8.5. Referencias a objeto remoto IOR 8.6.Servicio de nombrado CORBA 8.7. Ejemplo en IDL Java 8.8. Pasos de diseño, compilación y ejecución en IDL Java 8.9. Conclusiones |
|
Semanas 11 y 12 | Unidad 9. Servlets y Servicios Web 9.1. Introducción 9.2. Applets 9.3. Introducción a los Servlets 9.4. Servlets HTTP y su funcionamiento 9.5. Mantenimiento de la información de estado en Servlets 9.5.1. Campos ocultos de formularios 9.5.2. Cookies 9.5.3. Variables de Servlet 9.5.4. Objeto session 9.6. Servicios web 9.7. Protocolo SOAP 9.8. Breve reseña de la arquitectura REST 9.9. Conclusiones |
|
Semanas 13, 14 y 15 |
Unidad 10. Paradigmas Avanzados de Computación Distribuida 10.1. Introducción 10.2. Paradigma MOM 10.3. Paradigma de agentes software móviles 10.4. Paradigma de espacio de objetos 10.5. Computación colaborativa 10.6. Tendencias futuras en computación distribuida 10.7. Conclusiones |
|
Resto de semanas hasta finalización del semestre | Estudio y preparación para el examen final, celebración del examen final y cierre de actas. |
Tipo de actividad | Actividades planificadas | Peso clasificación |
---|---|---|
Actividades de aprendizaje | 4 | 10% |
Actividades de Ebaluación Continua (AEC) | 4 | 20% |
Controles | 4 | 10% |
Examen final | 0 | 60% |
Total | 100% |
Para aprobar la asignatura, es necesario obtener una calificación mínima de 5 en el examen final presencial, así como en la calificación total del curso, una vez realizado el cómputo ponderado de las calificaciones obtenidas en las actividades didácticas y en el examen final presencial.
Si un estudiante no aprueba la asignatura en la convocatoria ordinaria podrá examinarse en la convocatoria de septiembre.
Las fechas previstas para la realización de todas las actividades se indican en el aula virtual de la asignatura.
Según la Real Academia Española, “plagiar” significa copiar en lo sustancial obras ajenas dándolas como propias. Dicho de otro modo, plagiar implica expresar las ideas de otra persona como si fuesen propias, sin citar la autoría de las mismas. Igualmente, la apropiación de contenido puede ser debida a una inclusión excesiva de información procedente de una misma fuente, pese a que esta haya sido citada adecuadamente. Teniendo en cuenta lo anterior, el estudiante deberá desarrollar sus conocimientos con sus propias palabras y expresiones. En ningún caso se aceptarán copias literales de párrafos, imágenes, gráficos, tablas, etc. de los materiales consultados. En caso de ser necesaria su reproducción, esta deberá contemplar las normas adecuadas para la citación académica.
Los documentos que sean presentados en las actividades académicas podrán ser sometidos a diferentes mecanismos de comprobación de la originalidad (herramientas antiplagios que detectan coincidencias de texto con otras fuentes, comparación con trabajos de otros estudiantes, comparación con información publicada en Internet, etc). El profesor valorará si el trabajo presentado cuenta con los criterios de originalidad exigidos o, en su caso, se atribuye adecuadamente la información no propia a las fuentes correspondientes. La adjudicación como propia de información que corresponde a otros autores podrá suponer el suspenso de la actividad.
Los documentos presentados en las actividades académicas podrán ser almacenados en formato papel o electrónico y servir de comparación con otros trabajos de terceros, a fin de proteger la originalidad de la fuente y evitar la apropiación indebida de todo o parte del trabajo del estudiante. Por tanto, podrán ser utilizados y almacenados por la universidad, a través del sistema que estime, con el único fin de servir como fuente de comparación de cualquier otro trabajo que se presente.
El sistema de calificación de todas las actividades didácticas es numérico del 0 a 10 con expresión de un decimal, al que se añade su correspondiente calificación cualitativa:
0 - 4.9: Suspenso (SU) 5.0 - 6.9: Aprobado (AP) 7.0 - 8.9: Notable (NT) 9.0 - 10: Sobresaliente (SB)
(RD 1125/2003, de 5 de septiembre, por lo que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y con validez en todo el territorio nacional).
Código de la asignatura | 1398 |
---|---|
Nº Créditos ECTS | 6 |
Tipo | Obligatoria |
Duración | Semestral |
Idiomas | Castellano |
Planes de estudio | |
Profesor(es) | |
Año académico | 2024-25 |
Los últimos avances en las redes de comunicaciones han incrementado la importancia de la computación distribuida en las disciplinas de las ciencias de la computación.
La computación distribuida es aquella que se lleva a cabo en un sistema distribuido, que se define como un conjunto de computadores interconectados a través de una red y que son capaces de colaborar entre sí para lograr un fin común.
Esta asignatura explora las formas en que lo programas, ejecutando en computadores independientes, colaboran con otros con el fin de llevar a cabo una determinada tarea de computación, tal como los servicios de red o las aplicaciones basadas en la Web. En la asignatura se estudia la evolución de los sistemas distribuidos, los paradigmas de programación distribuida existentes y las APIs, conjuntos de herramientas, protocolos y estándares necesarios para desarrollar un sistema distribuido.
Es altamente recomendable para el aprovechamiento de esta asignatura tener conocimientos de redes de computadores, de sistemas operativos y de programación.
SEMANAS (*) | UNIDADES DIDÁCTICAS | ACTIVIDADES DIDÁCTICAS |
---|---|---|
Semana 1 | Unidad 1. Introducción a la computación distribuida 1.1. Conceptos básicos 1.2. Computación monolítica, distribuida, paralela y cooperativa 1.3. Ventajas, inconvenientes y desafíos de los sistemas distribuidos 1.4. Conceptos previos sobre sistemas operativos: procesos y concurrencia 1.5. Conceptos previos sobre redes 1.6. Conceptos previos sobre Ingeniería del Software 1.7. Organización de este manual 1.8. Conclusiones |
|
Semanas 2 y 3 | Unidad 2. Paradigmas de computación distribuida y comunicación entre procesos 2.1. Comunicación entre procesos 2.2. Sincronización de eventos 2.2.1. Supuesto 1: envío síncrono y recepción síncrona 2.2.2. Supuesto 2: envío asíncrono y recepción síncrona 2.2.3. Supuesto 3: envío síncrono y recepción asíncrona 2.2.4. Supuesto 4: envío asíncrono y recepción asíncrona 2.3. Interbloqueos y temporizadores 2.4. Representación y codificación de datos 2.5. Clasificación y descripción de los paradigmas de computación distribuida 2.6. Java como entorno de desarrollo de sistemas distribuidos |
|
Semana 4 | Unidad 3. API de paso de mensajes con Sockets 3.1. API de sockets, tipos y diferencias 3.2. Sockets de tipo datagrama 3.3. Sockets de tipo stream 3.4. Solución a interbloqueos: temporizadores y eventos no bloqueantes 3.5. Seguridad en sockets 3.6. Conclusiones |
|
Semana 5 | Unidad 4. Paradigma Cliente-Servidor 4.1. Características y conceptos fundamentales de los sistemas distribuidos de tipo cliente-servidor 4.2. Proceso de diseño e implementación de un sistema cliente-servidor 4.3. Problemas de direccionamiento no orientado a conexión con clientes anónimos 4.4. Servidores iterativos y concurrentes 4.5. Información de estado y de sesión 4.5.1. Información de sesión 4.5.2. Información de estado global 4.6. Clientes complejos recibiendo respuestas asíncronas desde el lado servidor 4.7. Servidores complejos actuando como intermediadores entre varios clientes |
|
Semana 6 | Unidad 5. Comunicación por Multidifusión 5.1. Introducción a la multidifusión y usos comunes 5.2. Fiabilidad y ordenación en los sistemas multidifusión 5.3. Implementación Java de sistemas de multidifusión 5.4. Ejemplo de uso de la comunicación en grupo entre iguales 5.5. Implementaciones de multidifusión fiable 5.6. Multitransmisión a nivel de aplicación 5.7. Conclusiones |
|
Semanas 7 y 8 | Unidad 6. Objetos Distribuidos 6.1. Introducción 6.2. Arquitectura de una aplicación basada en objetos distribuidos 6.3. Tecnologías de sistemas de objetos distribuidos 6.4. Capas software de Java RMI en el lado cliente y en el lado servidor 6.5. API Java RMI de objetos distribuidos 6.6. Pasos para construir una aplicación RMI 6.7. Uso de callback en RMI 6.8. Descarga dinámica de resguardos de objetos remotos y gestor de seguridad RMI 6.9. Conclusiones |
|
Semana 9 |
Unidad 7. HTML, XML, HTTP y CGI 7.1. Introducción 7.2. Lenguaje HTML 7.3. Lenguaje XML 7.4. Protocolo de Internet: HTTP 7.5. Uso de contenidos dinámicos: manejo de formularios y CGI 7.6. Manejo de datos de estado y sesión en Internet 7.7. Conclusiones |
|
Semana 10 | Unidad 8. Objetos distribuidos multi-lenguaje: CORBA 8.1. Introducción 8.2. Arquitectura CORBA 8.3. Lenguaje de descripción de interfaz en CORBA 8.4. Protocolos de interoperabilidad GIOP 8.5. Referencias a objeto remoto IOR 8.6.Servicio de nombrado CORBA 8.7. Ejemplo en IDL Java 8.8. Pasos de diseño, compilación y ejecución en IDL Java 8.9. Conclusiones |
|
Semanas 11 y 12 | Unidad 9. Servlets y Servicios Web 9.1. Introducción 9.2. Applets 9.3. Introducción a los Servlets 9.4. Servlets HTTP y su funcionamiento 9.5. Mantenimiento de la información de estado en Servlets 9.5.1. Campos ocultos de formularios 9.5.2. Cookies 9.5.3. Variables de Servlet 9.5.4. Objeto session 9.6. Servicios web 9.7. Protocolo SOAP 9.8. Breve reseña de la arquitectura REST 9.9. Conclusiones |
|
Semanas 13, 14 y 15 |
Unidad 10. Paradigmas Avanzados de Computación Distribuida 10.1. Introducción 10.2. Paradigma MOM 10.3. Paradigma de agentes software móviles 10.4. Paradigma de espacio de objetos 10.5. Computación colaborativa 10.6. Tendencias futuras en computación distribuida 10.7. Conclusiones |
|
Resto de semanas hasta finalización del semestre | Estudio y preparación para el examen final, celebración del examen final y cierre de actas. |
Tipo de actividad | Actividades planificadas | Peso clasificación |
---|---|---|
Actividades de aprendizaje | 4 | 10% |
Actividades de Ebaluación Continua (AEC) | 4 | 20% |
Controles | 4 | 10% |
Examen final | 0 | 60% |
Total | 100% |
Para aprobar la asignatura, es necesario obtener una calificación mínima de 5 en el examen final presencial, así como en la calificación total del curso, una vez realizado el cómputo ponderado de las calificaciones obtenidas en las actividades didácticas y en el examen final presencial.
Si un estudiante no aprueba la asignatura en la convocatoria ordinaria podrá examinarse en la convocatoria de septiembre.
Las fechas previstas para la realización de todas las actividades se indican en el aula virtual de la asignatura.
Según la Real Academia Española, “plagiar” significa copiar en lo sustancial obras ajenas dándolas como propias. Dicho de otro modo, plagiar implica expresar las ideas de otra persona como si fuesen propias, sin citar la autoría de las mismas. Igualmente, la apropiación de contenido puede ser debida a una inclusión excesiva de información procedente de una misma fuente, pese a que esta haya sido citada adecuadamente. Teniendo en cuenta lo anterior, el estudiante deberá desarrollar sus conocimientos con sus propias palabras y expresiones. En ningún caso se aceptarán copias literales de párrafos, imágenes, gráficos, tablas, etc. de los materiales consultados. En caso de ser necesaria su reproducción, esta deberá contemplar las normas adecuadas para la citación académica.
Los documentos que sean presentados en las actividades académicas podrán ser sometidos a diferentes mecanismos de comprobación de la originalidad (herramientas antiplagios que detectan coincidencias de texto con otras fuentes, comparación con trabajos de otros estudiantes, comparación con información publicada en Internet, etc). El profesor valorará si el trabajo presentado cuenta con los criterios de originalidad exigidos o, en su caso, se atribuye adecuadamente la información no propia a las fuentes correspondientes. La adjudicación como propia de información que corresponde a otros autores podrá suponer el suspenso de la actividad.
Los documentos presentados en las actividades académicas podrán ser almacenados en formato papel o electrónico y servir de comparación con otros trabajos de terceros, a fin de proteger la originalidad de la fuente y evitar la apropiación indebida de todo o parte del trabajo del estudiante. Por tanto, podrán ser utilizados y almacenados por la universidad, a través del sistema que estime, con el único fin de servir como fuente de comparación de cualquier otro trabajo que se presente.
El sistema de calificación de todas las actividades didácticas es numérico del 0 a 10 con expresión de un decimal, al que se añade su correspondiente calificación cualitativa:
0 - 4.9: Suspenso (SU) 5.0 - 6.9: Aprobado (AP) 7.0 - 8.9: Notable (NT) 9.0 - 10: Sobresaliente (SB)
(RD 1125/2003, de 5 de septiembre, por lo que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y con validez en todo el territorio nacional).
Código de la asignatura | 1398 |
---|---|
Nº Créditos ECTS | 6 |
Tipo | Obligatoria |
Duración | Semestral |
Idiomas | Castellano |
Planes de estudio | |
Profesor(es) | |
Año académico | 2024-25 |
Los últimos avances en las redes de comunicaciones han incrementado la importancia de la computación distribuida en las disciplinas de las ciencias de la computación.
La computación distribuida es aquella que se lleva a cabo en un sistema distribuido, que se define como un conjunto de computadores interconectados a través de una red y que son capaces de colaborar entre sí para lograr un fin común.
Esta asignatura explora las formas en que lo programas, ejecutando en computadores independientes, colaboran con otros con el fin de llevar a cabo una determinada tarea de computación, tal como los servicios de red o las aplicaciones basadas en la Web. En la asignatura se estudia la evolución de los sistemas distribuidos, los paradigmas de programación distribuida existentes y las APIs, conjuntos de herramientas, protocolos y estándares necesarios para desarrollar un sistema distribuido.
Es altamente recomendable para el aprovechamiento de esta asignatura tener conocimientos de redes de computadores, de sistemas operativos y de programación.
SEMANAS (*) | UNIDADES DIDÁCTICAS | ACTIVIDADES DIDÁCTICAS |
---|---|---|
Semana 1 | Unidad 1. Introducción a la computación distribuida 1.1. Conceptos básicos 1.2. Computación monolítica, distribuida, paralela y cooperativa 1.3. Ventajas, inconvenientes y desafíos de los sistemas distribuidos 1.4. Conceptos previos sobre sistemas operativos: procesos y concurrencia 1.5. Conceptos previos sobre redes 1.6. Conceptos previos sobre Ingeniería del Software 1.7. Organización de este manual 1.8. Conclusiones |
|
Semanas 2 y 3 | Unidad 2. Paradigmas de computación distribuida y comunicación entre procesos 2.1. Comunicación entre procesos 2.2. Sincronización de eventos 2.2.1. Supuesto 1: envío síncrono y recepción síncrona 2.2.2. Supuesto 2: envío asíncrono y recepción síncrona 2.2.3. Supuesto 3: envío síncrono y recepción asíncrona 2.2.4. Supuesto 4: envío asíncrono y recepción asíncrona 2.3. Interbloqueos y temporizadores 2.4. Representación y codificación de datos 2.5. Clasificación y descripción de los paradigmas de computación distribuida 2.6. Java como entorno de desarrollo de sistemas distribuidos |
|
Semana 4 | Unidad 3. API de paso de mensajes con Sockets 3.1. API de sockets, tipos y diferencias 3.2. Sockets de tipo datagrama 3.3. Sockets de tipo stream 3.4. Solución a interbloqueos: temporizadores y eventos no bloqueantes 3.5. Seguridad en sockets 3.6. Conclusiones |
|
Semana 5 | Unidad 4. Paradigma Cliente-Servidor 4.1. Características y conceptos fundamentales de los sistemas distribuidos de tipo cliente-servidor 4.2. Proceso de diseño e implementación de un sistema cliente-servidor 4.3. Problemas de direccionamiento no orientado a conexión con clientes anónimos 4.4. Servidores iterativos y concurrentes 4.5. Información de estado y de sesión 4.5.1. Información de sesión 4.5.2. Información de estado global 4.6. Clientes complejos recibiendo respuestas asíncronas desde el lado servidor 4.7. Servidores complejos actuando como intermediadores entre varios clientes |
|
Semana 6 | Unidad 5. Comunicación por Multidifusión 5.1. Introducción a la multidifusión y usos comunes 5.2. Fiabilidad y ordenación en los sistemas multidifusión 5.3. Implementación Java de sistemas de multidifusión 5.4. Ejemplo de uso de la comunicación en grupo entre iguales 5.5. Implementaciones de multidifusión fiable 5.6. Multitransmisión a nivel de aplicación 5.7. Conclusiones |
|
Semanas 7 y 8 | Unidad 6. Objetos Distribuidos 6.1. Introducción 6.2. Arquitectura de una aplicación basada en objetos distribuidos 6.3. Tecnologías de sistemas de objetos distribuidos 6.4. Capas software de Java RMI en el lado cliente y en el lado servidor 6.5. API Java RMI de objetos distribuidos 6.6. Pasos para construir una aplicación RMI 6.7. Uso de callback en RMI 6.8. Descarga dinámica de resguardos de objetos remotos y gestor de seguridad RMI 6.9. Conclusiones |
|
Semana 9 |
Unidad 7. HTML, XML, HTTP y CGI 7.1. Introducción 7.2. Lenguaje HTML 7.3. Lenguaje XML 7.4. Protocolo de Internet: HTTP 7.5. Uso de contenidos dinámicos: manejo de formularios y CGI 7.6. Manejo de datos de estado y sesión en Internet 7.7. Conclusiones |
|
Semana 10 | Unidad 8. Objetos distribuidos multi-lenguaje: CORBA 8.1. Introducción 8.2. Arquitectura CORBA 8.3. Lenguaje de descripción de interfaz en CORBA 8.4. Protocolos de interoperabilidad GIOP 8.5. Referencias a objeto remoto IOR 8.6.Servicio de nombrado CORBA 8.7. Ejemplo en IDL Java 8.8. Pasos de diseño, compilación y ejecución en IDL Java 8.9. Conclusiones |
|
Semanas 11 y 12 | Unidad 9. Servlets y Servicios Web 9.1. Introducción 9.2. Applets 9.3. Introducción a los Servlets 9.4. Servlets HTTP y su funcionamiento 9.5. Mantenimiento de la información de estado en Servlets 9.5.1. Campos ocultos de formularios 9.5.2. Cookies 9.5.3. Variables de Servlet 9.5.4. Objeto session 9.6. Servicios web 9.7. Protocolo SOAP 9.8. Breve reseña de la arquitectura REST 9.9. Conclusiones |
|
Semanas 13, 14 y 15 |
Unidad 10. Paradigmas Avanzados de Computación Distribuida 10.1. Introducción 10.2. Paradigma MOM 10.3. Paradigma de agentes software móviles 10.4. Paradigma de espacio de objetos 10.5. Computación colaborativa 10.6. Tendencias futuras en computación distribuida 10.7. Conclusiones |
|
Resto de semanas hasta finalización del semestre | Estudio y preparación para el examen final, celebración del examen final y cierre de actas. |
Tipo de actividad | Actividades planificadas | Peso clasificación |
---|---|---|
Actividades de aprendizaje | 4 | 10% |
Actividades de Ebaluación Continua (AEC) | 4 | 20% |
Controles | 4 | 10% |
Examen final | 0 | 60% |
Total | 100% |
Para aprobar la asignatura, es necesario obtener una calificación mínima de 5 en el examen final presencial, así como en la calificación total del curso, una vez realizado el cómputo ponderado de las calificaciones obtenidas en las actividades didácticas y en el examen final presencial.
Si un estudiante no aprueba la asignatura en la convocatoria ordinaria podrá examinarse en la convocatoria de septiembre.
Las fechas previstas para la realización de todas las actividades se indican en el aula virtual de la asignatura.
Según la Real Academia Española, “plagiar” significa copiar en lo sustancial obras ajenas dándolas como propias. Dicho de otro modo, plagiar implica expresar las ideas de otra persona como si fuesen propias, sin citar la autoría de las mismas. Igualmente, la apropiación de contenido puede ser debida a una inclusión excesiva de información procedente de una misma fuente, pese a que esta haya sido citada adecuadamente. Teniendo en cuenta lo anterior, el estudiante deberá desarrollar sus conocimientos con sus propias palabras y expresiones. En ningún caso se aceptarán copias literales de párrafos, imágenes, gráficos, tablas, etc. de los materiales consultados. En caso de ser necesaria su reproducción, esta deberá contemplar las normas adecuadas para la citación académica.
Los documentos que sean presentados en las actividades académicas podrán ser sometidos a diferentes mecanismos de comprobación de la originalidad (herramientas antiplagios que detectan coincidencias de texto con otras fuentes, comparación con trabajos de otros estudiantes, comparación con información publicada en Internet, etc). El profesor valorará si el trabajo presentado cuenta con los criterios de originalidad exigidos o, en su caso, se atribuye adecuadamente la información no propia a las fuentes correspondientes. La adjudicación como propia de información que corresponde a otros autores podrá suponer el suspenso de la actividad.
Los documentos presentados en las actividades académicas podrán ser almacenados en formato papel o electrónico y servir de comparación con otros trabajos de terceros, a fin de proteger la originalidad de la fuente y evitar la apropiación indebida de todo o parte del trabajo del estudiante. Por tanto, podrán ser utilizados y almacenados por la universidad, a través del sistema que estime, con el único fin de servir como fuente de comparación de cualquier otro trabajo que se presente.
El sistema de calificación de todas las actividades didácticas es numérico del 0 a 10 con expresión de un decimal, al que se añade su correspondiente calificación cualitativa:
0 - 4.9: Suspenso (SU) 5.0 - 6.9: Aprobado (AP) 7.0 - 8.9: Notable (NT) 9.0 - 10: Sobresaliente (SB)
(RD 1125/2003, de 5 de septiembre, por lo que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y con validez en todo el territorio nacional).
Código de la asignatura | 1398 |
---|---|
Nº Créditos ECTS | 6 |
Tipo | Obligatoria |
Duración | Semestral |
Idiomas | Castellano |
Planes de estudio | |
Profesor(es) | |
Año académico | 2024-25 |
Los últimos avances en las redes de comunicaciones han incrementado la importancia de la computación distribuida en las disciplinas de las ciencias de la computación.
La computación distribuida es aquella que se lleva a cabo en un sistema distribuido, que se define como un conjunto de computadores interconectados a través de una red y que son capaces de colaborar entre sí para lograr un fin común.
Esta asignatura explora las formas en que lo programas, ejecutando en computadores independientes, colaboran con otros con el fin de llevar a cabo una determinada tarea de computación, tal como los servicios de red o las aplicaciones basadas en la Web. En la asignatura se estudia la evolución de los sistemas distribuidos, los paradigmas de programación distribuida existentes y las APIs, conjuntos de herramientas, protocolos y estándares necesarios para desarrollar un sistema distribuido.
Es altamente recomendable para el aprovechamiento de esta asignatura tener conocimientos de redes de computadores, de sistemas operativos y de programación.
SEMANAS (*) | UNIDADES DIDÁCTICAS | ACTIVIDADES DIDÁCTICAS |
---|---|---|
Semana 1 | Unidad 1. Introducción a la computación distribuida 1.1. Conceptos básicos 1.2. Computación monolítica, distribuida, paralela y cooperativa 1.3. Ventajas, inconvenientes y desafíos de los sistemas distribuidos 1.4. Conceptos previos sobre sistemas operativos: procesos y concurrencia 1.5. Conceptos previos sobre redes 1.6. Conceptos previos sobre Ingeniería del Software 1.7. Organización de este manual 1.8. Conclusiones |
|
Semanas 2 y 3 | Unidad 2. Paradigmas de computación distribuida y comunicación entre procesos 2.1. Comunicación entre procesos 2.2. Sincronización de eventos 2.2.1. Supuesto 1: envío síncrono y recepción síncrona 2.2.2. Supuesto 2: envío asíncrono y recepción síncrona 2.2.3. Supuesto 3: envío síncrono y recepción asíncrona 2.2.4. Supuesto 4: envío asíncrono y recepción asíncrona 2.3. Interbloqueos y temporizadores 2.4. Representación y codificación de datos 2.5. Clasificación y descripción de los paradigmas de computación distribuida 2.6. Java como entorno de desarrollo de sistemas distribuidos |
|
Semana 4 | Unidad 3. API de paso de mensajes con Sockets 3.1. API de sockets, tipos y diferencias 3.2. Sockets de tipo datagrama 3.3. Sockets de tipo stream 3.4. Solución a interbloqueos: temporizadores y eventos no bloqueantes 3.5. Seguridad en sockets 3.6. Conclusiones |
|
Semana 5 | Unidad 4. Paradigma Cliente-Servidor 4.1. Características y conceptos fundamentales de los sistemas distribuidos de tipo cliente-servidor 4.2. Proceso de diseño e implementación de un sistema cliente-servidor 4.3. Problemas de direccionamiento no orientado a conexión con clientes anónimos 4.4. Servidores iterativos y concurrentes 4.5. Información de estado y de sesión 4.5.1. Información de sesión 4.5.2. Información de estado global 4.6. Clientes complejos recibiendo respuestas asíncronas desde el lado servidor 4.7. Servidores complejos actuando como intermediadores entre varios clientes |
|
Semana 6 | Unidad 5. Comunicación por Multidifusión 5.1. Introducción a la multidifusión y usos comunes 5.2. Fiabilidad y ordenación en los sistemas multidifusión 5.3. Implementación Java de sistemas de multidifusión 5.4. Ejemplo de uso de la comunicación en grupo entre iguales 5.5. Implementaciones de multidifusión fiable 5.6. Multitransmisión a nivel de aplicación 5.7. Conclusiones |
|
Semanas 7 y 8 | Unidad 6. Objetos Distribuidos 6.1. Introducción 6.2. Arquitectura de una aplicación basada en objetos distribuidos 6.3. Tecnologías de sistemas de objetos distribuidos 6.4. Capas software de Java RMI en el lado cliente y en el lado servidor 6.5. API Java RMI de objetos distribuidos 6.6. Pasos para construir una aplicación RMI 6.7. Uso de callback en RMI 6.8. Descarga dinámica de resguardos de objetos remotos y gestor de seguridad RMI 6.9. Conclusiones |
|
Semana 9 |
Unidad 7. HTML, XML, HTTP y CGI 7.1. Introducción 7.2. Lenguaje HTML 7.3. Lenguaje XML 7.4. Protocolo de Internet: HTTP 7.5. Uso de contenidos dinámicos: manejo de formularios y CGI 7.6. Manejo de datos de estado y sesión en Internet 7.7. Conclusiones |
|
Semana 10 | Unidad 8. Objetos distribuidos multi-lenguaje: CORBA 8.1. Introducción 8.2. Arquitectura CORBA 8.3. Lenguaje de descripción de interfaz en CORBA 8.4. Protocolos de interoperabilidad GIOP 8.5. Referencias a objeto remoto IOR 8.6.Servicio de nombrado CORBA 8.7. Ejemplo en IDL Java 8.8. Pasos de diseño, compilación y ejecución en IDL Java 8.9. Conclusiones |
|
Semanas 11 y 12 | Unidad 9. Servlets y Servicios Web 9.1. Introducción 9.2. Applets 9.3. Introducción a los Servlets 9.4. Servlets HTTP y su funcionamiento 9.5. Mantenimiento de la información de estado en Servlets 9.5.1. Campos ocultos de formularios 9.5.2. Cookies 9.5.3. Variables de Servlet 9.5.4. Objeto session 9.6. Servicios web 9.7. Protocolo SOAP 9.8. Breve reseña de la arquitectura REST 9.9. Conclusiones |
|
Semanas 13, 14 y 15 |
Unidad 10. Paradigmas Avanzados de Computación Distribuida 10.1. Introducción 10.2. Paradigma MOM 10.3. Paradigma de agentes software móviles 10.4. Paradigma de espacio de objetos 10.5. Computación colaborativa 10.6. Tendencias futuras en computación distribuida 10.7. Conclusiones |
|
Resto de semanas hasta finalización del semestre | Estudio y preparación para el examen final, celebración del examen final y cierre de actas. |
Tipo de actividad | Actividades planificadas | Peso clasificación |
---|---|---|
Actividades de aprendizaje | 4 | 10% |
Actividades de Ebaluación Continua (AEC) | 4 | 20% |
Controles | 4 | 10% |
Examen final | 0 | 60% |
Total | 100% |
Para aprobar la asignatura, es necesario obtener una calificación mínima de 5 en el examen final presencial, así como en la calificación total del curso, una vez realizado el cómputo ponderado de las calificaciones obtenidas en las actividades didácticas y en el examen final presencial.
Si un estudiante no aprueba la asignatura en la convocatoria ordinaria podrá examinarse en la convocatoria de septiembre.
Las fechas previstas para la realización de todas las actividades se indican en el aula virtual de la asignatura.
Según la Real Academia Española, “plagiar” significa copiar en lo sustancial obras ajenas dándolas como propias. Dicho de otro modo, plagiar implica expresar las ideas de otra persona como si fuesen propias, sin citar la autoría de las mismas. Igualmente, la apropiación de contenido puede ser debida a una inclusión excesiva de información procedente de una misma fuente, pese a que esta haya sido citada adecuadamente. Teniendo en cuenta lo anterior, el estudiante deberá desarrollar sus conocimientos con sus propias palabras y expresiones. En ningún caso se aceptarán copias literales de párrafos, imágenes, gráficos, tablas, etc. de los materiales consultados. En caso de ser necesaria su reproducción, esta deberá contemplar las normas adecuadas para la citación académica.
Los documentos que sean presentados en las actividades académicas podrán ser sometidos a diferentes mecanismos de comprobación de la originalidad (herramientas antiplagios que detectan coincidencias de texto con otras fuentes, comparación con trabajos de otros estudiantes, comparación con información publicada en Internet, etc). El profesor valorará si el trabajo presentado cuenta con los criterios de originalidad exigidos o, en su caso, se atribuye adecuadamente la información no propia a las fuentes correspondientes. La adjudicación como propia de información que corresponde a otros autores podrá suponer el suspenso de la actividad.
Los documentos presentados en las actividades académicas podrán ser almacenados en formato papel o electrónico y servir de comparación con otros trabajos de terceros, a fin de proteger la originalidad de la fuente y evitar la apropiación indebida de todo o parte del trabajo del estudiante. Por tanto, podrán ser utilizados y almacenados por la universidad, a través del sistema que estime, con el único fin de servir como fuente de comparación de cualquier otro trabajo que se presente.
El sistema de calificación de todas las actividades didácticas es numérico del 0 a 10 con expresión de un decimal, al que se añade su correspondiente calificación cualitativa:
0 - 4.9: Suspenso (SU) 5.0 - 6.9: Aprobado (AP) 7.0 - 8.9: Notable (NT) 9.0 - 10: Sobresaliente (SB)
(RD 1125/2003, de 5 de septiembre, por lo que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y con validez en todo el territorio nacional).
Código de la asignatura | 1398 |
---|---|
Nº Créditos ECTS | 6 |
Tipo | Obligatoria |
Duración | Semestral |
Idiomas | Castellano |
Planes de estudio | |
Profesor(es) | |
Año académico | 2024-25 |
Los últimos avances en las redes de comunicaciones han incrementado la importancia de la computación distribuida en las disciplinas de las ciencias de la computación.
La computación distribuida es aquella que se lleva a cabo en un sistema distribuido, que se define como un conjunto de computadores interconectados a través de una red y que son capaces de colaborar entre sí para lograr un fin común.
Esta asignatura explora las formas en que lo programas, ejecutando en computadores independientes, colaboran con otros con el fin de llevar a cabo una determinada tarea de computación, tal como los servicios de red o las aplicaciones basadas en la Web. En la asignatura se estudia la evolución de los sistemas distribuidos, los paradigmas de programación distribuida existentes y las APIs, conjuntos de herramientas, protocolos y estándares necesarios para desarrollar un sistema distribuido.
Es altamente recomendable para el aprovechamiento de esta asignatura tener conocimientos de redes de computadores, de sistemas operativos y de programación.
SEMANAS (*) | UNIDADES DIDÁCTICAS | ACTIVIDADES DIDÁCTICAS |
---|---|---|
Semana 1 | Unidad 1. Introducción a la computación distribuida 1.1. Conceptos básicos 1.2. Computación monolítica, distribuida, paralela y cooperativa 1.3. Ventajas, inconvenientes y desafíos de los sistemas distribuidos 1.4. Conceptos previos sobre sistemas operativos: procesos y concurrencia 1.5. Conceptos previos sobre redes 1.6. Conceptos previos sobre Ingeniería del Software 1.7. Organización de este manual 1.8. Conclusiones |
|
Semanas 2 y 3 | Unidad 2. Paradigmas de computación distribuida y comunicación entre procesos 2.1. Comunicación entre procesos 2.2. Sincronización de eventos 2.2.1. Supuesto 1: envío síncrono y recepción síncrona 2.2.2. Supuesto 2: envío asíncrono y recepción síncrona 2.2.3. Supuesto 3: envío síncrono y recepción asíncrona 2.2.4. Supuesto 4: envío asíncrono y recepción asíncrona 2.3. Interbloqueos y temporizadores 2.4. Representación y codificación de datos 2.5. Clasificación y descripción de los paradigmas de computación distribuida 2.6. Java como entorno de desarrollo de sistemas distribuidos |
|
Semana 4 | Unidad 3. API de paso de mensajes con Sockets 3.1. API de sockets, tipos y diferencias 3.2. Sockets de tipo datagrama 3.3. Sockets de tipo stream 3.4. Solución a interbloqueos: temporizadores y eventos no bloqueantes 3.5. Seguridad en sockets 3.6. Conclusiones |
|
Semana 5 | Unidad 4. Paradigma Cliente-Servidor 4.1. Características y conceptos fundamentales de los sistemas distribuidos de tipo cliente-servidor 4.2. Proceso de diseño e implementación de un sistema cliente-servidor 4.3. Problemas de direccionamiento no orientado a conexión con clientes anónimos 4.4. Servidores iterativos y concurrentes 4.5. Información de estado y de sesión 4.5.1. Información de sesión 4.5.2. Información de estado global 4.6. Clientes complejos recibiendo respuestas asíncronas desde el lado servidor 4.7. Servidores complejos actuando como intermediadores entre varios clientes |
|
Semana 6 | Unidad 5. Comunicación por Multidifusión 5.1. Introducción a la multidifusión y usos comunes 5.2. Fiabilidad y ordenación en los sistemas multidifusión 5.3. Implementación Java de sistemas de multidifusión 5.4. Ejemplo de uso de la comunicación en grupo entre iguales 5.5. Implementaciones de multidifusión fiable 5.6. Multitransmisión a nivel de aplicación 5.7. Conclusiones |
|
Semanas 7 y 8 | Unidad 6. Objetos Distribuidos 6.1. Introducción 6.2. Arquitectura de una aplicación basada en objetos distribuidos 6.3. Tecnologías de sistemas de objetos distribuidos 6.4. Capas software de Java RMI en el lado cliente y en el lado servidor 6.5. API Java RMI de objetos distribuidos 6.6. Pasos para construir una aplicación RMI 6.7. Uso de callback en RMI 6.8. Descarga dinámica de resguardos de objetos remotos y gestor de seguridad RMI 6.9. Conclusiones |
|
Semana 9 |
Unidad 7. HTML, XML, HTTP y CGI 7.1. Introducción 7.2. Lenguaje HTML 7.3. Lenguaje XML 7.4. Protocolo de Internet: HTTP 7.5. Uso de contenidos dinámicos: manejo de formularios y CGI 7.6. Manejo de datos de estado y sesión en Internet 7.7. Conclusiones |
|
Semana 10 | Unidad 8. Objetos distribuidos multi-lenguaje: CORBA 8.1. Introducción 8.2. Arquitectura CORBA 8.3. Lenguaje de descripción de interfaz en CORBA 8.4. Protocolos de interoperabilidad GIOP 8.5. Referencias a objeto remoto IOR 8.6.Servicio de nombrado CORBA 8.7. Ejemplo en IDL Java 8.8. Pasos de diseño, compilación y ejecución en IDL Java 8.9. Conclusiones |
|
Semanas 11 y 12 | Unidad 9. Servlets y Servicios Web 9.1. Introducción 9.2. Applets 9.3. Introducción a los Servlets 9.4. Servlets HTTP y su funcionamiento 9.5. Mantenimiento de la información de estado en Servlets 9.5.1. Campos ocultos de formularios 9.5.2. Cookies 9.5.3. Variables de Servlet 9.5.4. Objeto session 9.6. Servicios web 9.7. Protocolo SOAP 9.8. Breve reseña de la arquitectura REST 9.9. Conclusiones |
|
Semanas 13, 14 y 15 |
Unidad 10. Paradigmas Avanzados de Computación Distribuida 10.1. Introducción 10.2. Paradigma MOM 10.3. Paradigma de agentes software móviles 10.4. Paradigma de espacio de objetos 10.5. Computación colaborativa 10.6. Tendencias futuras en computación distribuida 10.7. Conclusiones |
|
Resto de semanas hasta finalización del semestre | Estudio y preparación para el examen final, celebración del examen final y cierre de actas. |
Tipo de actividad | Actividades planificadas | Peso clasificación |
---|---|---|
Actividades de aprendizaje | 4 | 10% |
Actividades de Ebaluación Continua (AEC) | 4 | 20% |
Controles | 4 | 10% |
Examen final | 0 | 60% |
Total | 100% |
Para aprobar la asignatura, es necesario obtener una calificación mínima de 5 en el examen final presencial, así como en la calificación total del curso, una vez realizado el cómputo ponderado de las calificaciones obtenidas en las actividades didácticas y en el examen final presencial.
Si un estudiante no aprueba la asignatura en la convocatoria ordinaria podrá examinarse en la convocatoria de septiembre.
Las fechas previstas para la realización de todas las actividades se indican en el aula virtual de la asignatura.
Según la Real Academia Española, “plagiar” significa copiar en lo sustancial obras ajenas dándolas como propias. Dicho de otro modo, plagiar implica expresar las ideas de otra persona como si fuesen propias, sin citar la autoría de las mismas. Igualmente, la apropiación de contenido puede ser debida a una inclusión excesiva de información procedente de una misma fuente, pese a que esta haya sido citada adecuadamente. Teniendo en cuenta lo anterior, el estudiante deberá desarrollar sus conocimientos con sus propias palabras y expresiones. En ningún caso se aceptarán copias literales de párrafos, imágenes, gráficos, tablas, etc. de los materiales consultados. En caso de ser necesaria su reproducción, esta deberá contemplar las normas adecuadas para la citación académica.
Los documentos que sean presentados en las actividades académicas podrán ser sometidos a diferentes mecanismos de comprobación de la originalidad (herramientas antiplagios que detectan coincidencias de texto con otras fuentes, comparación con trabajos de otros estudiantes, comparación con información publicada en Internet, etc). El profesor valorará si el trabajo presentado cuenta con los criterios de originalidad exigidos o, en su caso, se atribuye adecuadamente la información no propia a las fuentes correspondientes. La adjudicación como propia de información que corresponde a otros autores podrá suponer el suspenso de la actividad.
Los documentos presentados en las actividades académicas podrán ser almacenados en formato papel o electrónico y servir de comparación con otros trabajos de terceros, a fin de proteger la originalidad de la fuente y evitar la apropiación indebida de todo o parte del trabajo del estudiante. Por tanto, podrán ser utilizados y almacenados por la universidad, a través del sistema que estime, con el único fin de servir como fuente de comparación de cualquier otro trabajo que se presente.
El sistema de calificación de todas las actividades didácticas es numérico del 0 a 10 con expresión de un decimal, al que se añade su correspondiente calificación cualitativa:
0 - 4.9: Suspenso (SU) 5.0 - 6.9: Aprobado (AP) 7.0 - 8.9: Notable (NT) 9.0 - 10: Sobresaliente (SB)
(RD 1125/2003, de 5 de septiembre, por lo que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y con validez en todo el territorio nacional).
Código de la asignatura | 1398 |
---|---|
Nº Créditos ECTS | 6 |
Tipo | Obligatoria |
Duración | Semestral |
Idiomas | Castellano |
Planes de estudio | |
Profesor(es) | |
Año académico | 2024-25 |
Los últimos avances en las redes de comunicaciones han incrementado la importancia de la computación distribuida en las disciplinas de las ciencias de la computación.
La computación distribuida es aquella que se lleva a cabo en un sistema distribuido, que se define como un conjunto de computadores interconectados a través de una red y que son capaces de colaborar entre sí para lograr un fin común.
Esta asignatura explora las formas en que lo programas, ejecutando en computadores independientes, colaboran con otros con el fin de llevar a cabo una determinada tarea de computación, tal como los servicios de red o las aplicaciones basadas en la Web. En la asignatura se estudia la evolución de los sistemas distribuidos, los paradigmas de programación distribuida existentes y las APIs, conjuntos de herramientas, protocolos y estándares necesarios para desarrollar un sistema distribuido.
Es altamente recomendable para el aprovechamiento de esta asignatura tener conocimientos de redes de computadores, de sistemas operativos y de programación.
SEMANAS (*) | UNIDADES DIDÁCTICAS | ACTIVIDADES DIDÁCTICAS |
---|---|---|
Semana 1 | Unidad 1. Introducción a la computación distribuida 1.1. Conceptos básicos 1.2. Computación monolítica, distribuida, paralela y cooperativa 1.3. Ventajas, inconvenientes y desafíos de los sistemas distribuidos 1.4. Conceptos previos sobre sistemas operativos: procesos y concurrencia 1.5. Conceptos previos sobre redes 1.6. Conceptos previos sobre Ingeniería del Software 1.7. Organización de este manual 1.8. Conclusiones |
|
Semanas 2 y 3 | Unidad 2. Paradigmas de computación distribuida y comunicación entre procesos 2.1. Comunicación entre procesos 2.2. Sincronización de eventos 2.2.1. Supuesto 1: envío síncrono y recepción síncrona 2.2.2. Supuesto 2: envío asíncrono y recepción síncrona 2.2.3. Supuesto 3: envío síncrono y recepción asíncrona 2.2.4. Supuesto 4: envío asíncrono y recepción asíncrona 2.3. Interbloqueos y temporizadores 2.4. Representación y codificación de datos 2.5. Clasificación y descripción de los paradigmas de computación distribuida 2.6. Java como entorno de desarrollo de sistemas distribuidos |
|
Semana 4 | Unidad 3. API de paso de mensajes con Sockets 3.1. API de sockets, tipos y diferencias 3.2. Sockets de tipo datagrama 3.3. Sockets de tipo stream 3.4. Solución a interbloqueos: temporizadores y eventos no bloqueantes 3.5. Seguridad en sockets 3.6. Conclusiones |
|
Semana 5 | Unidad 4. Paradigma Cliente-Servidor 4.1. Características y conceptos fundamentales de los sistemas distribuidos de tipo cliente-servidor 4.2. Proceso de diseño e implementación de un sistema cliente-servidor 4.3. Problemas de direccionamiento no orientado a conexión con clientes anónimos 4.4. Servidores iterativos y concurrentes 4.5. Información de estado y de sesión 4.5.1. Información de sesión 4.5.2. Información de estado global 4.6. Clientes complejos recibiendo respuestas asíncronas desde el lado servidor 4.7. Servidores complejos actuando como intermediadores entre varios clientes |
|
Semana 6 | Unidad 5. Comunicación por Multidifusión 5.1. Introducción a la multidifusión y usos comunes 5.2. Fiabilidad y ordenación en los sistemas multidifusión 5.3. Implementación Java de sistemas de multidifusión 5.4. Ejemplo de uso de la comunicación en grupo entre iguales 5.5. Implementaciones de multidifusión fiable 5.6. Multitransmisión a nivel de aplicación 5.7. Conclusiones |
|
Semanas 7 y 8 | Unidad 6. Objetos Distribuidos 6.1. Introducción 6.2. Arquitectura de una aplicación basada en objetos distribuidos 6.3. Tecnologías de sistemas de objetos distribuidos 6.4. Capas software de Java RMI en el lado cliente y en el lado servidor 6.5. API Java RMI de objetos distribuidos 6.6. Pasos para construir una aplicación RMI 6.7. Uso de callback en RMI 6.8. Descarga dinámica de resguardos de objetos remotos y gestor de seguridad RMI 6.9. Conclusiones |
|
Semana 9 |
Unidad 7. HTML, XML, HTTP y CGI 7.1. Introducción 7.2. Lenguaje HTML 7.3. Lenguaje XML 7.4. Protocolo de Internet: HTTP 7.5. Uso de contenidos dinámicos: manejo de formularios y CGI 7.6. Manejo de datos de estado y sesión en Internet 7.7. Conclusiones |
|
Semana 10 | Unidad 8. Objetos distribuidos multi-lenguaje: CORBA 8.1. Introducción 8.2. Arquitectura CORBA 8.3. Lenguaje de descripción de interfaz en CORBA 8.4. Protocolos de interoperabilidad GIOP 8.5. Referencias a objeto remoto IOR 8.6.Servicio de nombrado CORBA 8.7. Ejemplo en IDL Java 8.8. Pasos de diseño, compilación y ejecución en IDL Java 8.9. Conclusiones |
|
Semanas 11 y 12 | Unidad 9. Servlets y Servicios Web 9.1. Introducción 9.2. Applets 9.3. Introducción a los Servlets 9.4. Servlets HTTP y su funcionamiento 9.5. Mantenimiento de la información de estado en Servlets 9.5.1. Campos ocultos de formularios 9.5.2. Cookies 9.5.3. Variables de Servlet 9.5.4. Objeto session 9.6. Servicios web 9.7. Protocolo SOAP 9.8. Breve reseña de la arquitectura REST 9.9. Conclusiones |
|
Semanas 13, 14 y 15 |
Unidad 10. Paradigmas Avanzados de Computación Distribuida 10.1. Introducción 10.2. Paradigma MOM 10.3. Paradigma de agentes software móviles 10.4. Paradigma de espacio de objetos 10.5. Computación colaborativa 10.6. Tendencias futuras en computación distribuida 10.7. Conclusiones |
|
Resto de semanas hasta finalización del semestre | Estudio y preparación para el examen final, celebración del examen final y cierre de actas. |
Tipo de actividad | Actividades planificadas | Peso clasificación |
---|---|---|
Actividades de aprendizaje | 4 | 10% |
Actividades de Ebaluación Continua (AEC) | 4 | 20% |
Controles | 4 | 10% |
Examen final | 0 | 60% |
Total | 100% |
Para aprobar la asignatura, es necesario obtener una calificación mínima de 5 en el examen final presencial, así como en la calificación total del curso, una vez realizado el cómputo ponderado de las calificaciones obtenidas en las actividades didácticas y en el examen final presencial.
Si un estudiante no aprueba la asignatura en la convocatoria ordinaria podrá examinarse en la convocatoria de septiembre.
Las fechas previstas para la realización de todas las actividades se indican en el aula virtual de la asignatura.
Según la Real Academia Española, “plagiar” significa copiar en lo sustancial obras ajenas dándolas como propias. Dicho de otro modo, plagiar implica expresar las ideas de otra persona como si fuesen propias, sin citar la autoría de las mismas. Igualmente, la apropiación de contenido puede ser debida a una inclusión excesiva de información procedente de una misma fuente, pese a que esta haya sido citada adecuadamente. Teniendo en cuenta lo anterior, el estudiante deberá desarrollar sus conocimientos con sus propias palabras y expresiones. En ningún caso se aceptarán copias literales de párrafos, imágenes, gráficos, tablas, etc. de los materiales consultados. En caso de ser necesaria su reproducción, esta deberá contemplar las normas adecuadas para la citación académica.
Los documentos que sean presentados en las actividades académicas podrán ser sometidos a diferentes mecanismos de comprobación de la originalidad (herramientas antiplagios que detectan coincidencias de texto con otras fuentes, comparación con trabajos de otros estudiantes, comparación con información publicada en Internet, etc). El profesor valorará si el trabajo presentado cuenta con los criterios de originalidad exigidos o, en su caso, se atribuye adecuadamente la información no propia a las fuentes correspondientes. La adjudicación como propia de información que corresponde a otros autores podrá suponer el suspenso de la actividad.
Los documentos presentados en las actividades académicas podrán ser almacenados en formato papel o electrónico y servir de comparación con otros trabajos de terceros, a fin de proteger la originalidad de la fuente y evitar la apropiación indebida de todo o parte del trabajo del estudiante. Por tanto, podrán ser utilizados y almacenados por la universidad, a través del sistema que estime, con el único fin de servir como fuente de comparación de cualquier otro trabajo que se presente.
El sistema de calificación de todas las actividades didácticas es numérico del 0 a 10 con expresión de un decimal, al que se añade su correspondiente calificación cualitativa:
0 - 4.9: Suspenso (SU) 5.0 - 6.9: Aprobado (AP) 7.0 - 8.9: Notable (NT) 9.0 - 10: Sobresaliente (SB)
(RD 1125/2003, de 5 de septiembre, por lo que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y con validez en todo el territorio nacional).
Código de la asignatura | 1398 |
---|---|
Nº Créditos ECTS | 6 |
Tipo | Obligatoria |
Duración | Semestral |
Idiomas | Castellano |
Planes de estudio | |
Profesor(es) | |
Año académico | 2024-25 |
Los últimos avances en las redes de comunicaciones han incrementado la importancia de la computación distribuida en las disciplinas de las ciencias de la computación.
La computación distribuida es aquella que se lleva a cabo en un sistema distribuido, que se define como un conjunto de computadores interconectados a través de una red y que son capaces de colaborar entre sí para lograr un fin común.
Esta asignatura explora las formas en que lo programas, ejecutando en computadores independientes, colaboran con otros con el fin de llevar a cabo una determinada tarea de computación, tal como los servicios de red o las aplicaciones basadas en la Web. En la asignatura se estudia la evolución de los sistemas distribuidos, los paradigmas de programación distribuida existentes y las APIs, conjuntos de herramientas, protocolos y estándares necesarios para desarrollar un sistema distribuido.
Es altamente recomendable para el aprovechamiento de esta asignatura tener conocimientos de redes de computadores, de sistemas operativos y de programación.
SEMANAS (*) | UNIDADES DIDÁCTICAS | ACTIVIDADES DIDÁCTICAS |
---|---|---|
Semana 1 | Unidad 1. Introducción a la computación distribuida 1.1. Conceptos básicos 1.2. Computación monolítica, distribuida, paralela y cooperativa 1.3. Ventajas, inconvenientes y desafíos de los sistemas distribuidos 1.4. Conceptos previos sobre sistemas operativos: procesos y concurrencia 1.5. Conceptos previos sobre redes 1.6. Conceptos previos sobre Ingeniería del Software 1.7. Organización de este manual 1.8. Conclusiones |
|
Semanas 2 y 3 | Unidad 2. Paradigmas de computación distribuida y comunicación entre procesos 2.1. Comunicación entre procesos 2.2. Sincronización de eventos 2.2.1. Supuesto 1: envío síncrono y recepción síncrona 2.2.2. Supuesto 2: envío asíncrono y recepción síncrona 2.2.3. Supuesto 3: envío síncrono y recepción asíncrona 2.2.4. Supuesto 4: envío asíncrono y recepción asíncrona 2.3. Interbloqueos y temporizadores 2.4. Representación y codificación de datos 2.5. Clasificación y descripción de los paradigmas de computación distribuida 2.6. Java como entorno de desarrollo de sistemas distribuidos |
|
Semana 4 | Unidad 3. API de paso de mensajes con Sockets 3.1. API de sockets, tipos y diferencias 3.2. Sockets de tipo datagrama 3.3. Sockets de tipo stream 3.4. Solución a interbloqueos: temporizadores y eventos no bloqueantes 3.5. Seguridad en sockets 3.6. Conclusiones |
|
Semana 5 | Unidad 4. Paradigma Cliente-Servidor 4.1. Características y conceptos fundamentales de los sistemas distribuidos de tipo cliente-servidor 4.2. Proceso de diseño e implementación de un sistema cliente-servidor 4.3. Problemas de direccionamiento no orientado a conexión con clientes anónimos 4.4. Servidores iterativos y concurrentes 4.5. Información de estado y de sesión 4.5.1. Información de sesión 4.5.2. Información de estado global 4.6. Clientes complejos recibiendo respuestas asíncronas desde el lado servidor 4.7. Servidores complejos actuando como intermediadores entre varios clientes |
|
Semana 6 | Unidad 5. Comunicación por Multidifusión 5.1. Introducción a la multidifusión y usos comunes 5.2. Fiabilidad y ordenación en los sistemas multidifusión 5.3. Implementación Java de sistemas de multidifusión 5.4. Ejemplo de uso de la comunicación en grupo entre iguales 5.5. Implementaciones de multidifusión fiable 5.6. Multitransmisión a nivel de aplicación 5.7. Conclusiones |
|
Semanas 7 y 8 | Unidad 6. Objetos Distribuidos 6.1. Introducción 6.2. Arquitectura de una aplicación basada en objetos distribuidos 6.3. Tecnologías de sistemas de objetos distribuidos 6.4. Capas software de Java RMI en el lado cliente y en el lado servidor 6.5. API Java RMI de objetos distribuidos 6.6. Pasos para construir una aplicación RMI 6.7. Uso de callback en RMI 6.8. Descarga dinámica de resguardos de objetos remotos y gestor de seguridad RMI 6.9. Conclusiones |
|
Semana 9 |
Unidad 7. HTML, XML, HTTP y CGI 7.1. Introducción 7.2. Lenguaje HTML 7.3. Lenguaje XML 7.4. Protocolo de Internet: HTTP 7.5. Uso de contenidos dinámicos: manejo de formularios y CGI 7.6. Manejo de datos de estado y sesión en Internet 7.7. Conclusiones |
|
Semana 10 | Unidad 8. Objetos distribuidos multi-lenguaje: CORBA 8.1. Introducción 8.2. Arquitectura CORBA 8.3. Lenguaje de descripción de interfaz en CORBA 8.4. Protocolos de interoperabilidad GIOP 8.5. Referencias a objeto remoto IOR 8.6.Servicio de nombrado CORBA 8.7. Ejemplo en IDL Java 8.8. Pasos de diseño, compilación y ejecución en IDL Java 8.9. Conclusiones |
|
Semanas 11 y 12 | Unidad 9. Servlets y Servicios Web 9.1. Introducción 9.2. Applets 9.3. Introducción a los Servlets 9.4. Servlets HTTP y su funcionamiento 9.5. Mantenimiento de la información de estado en Servlets 9.5.1. Campos ocultos de formularios 9.5.2. Cookies 9.5.3. Variables de Servlet 9.5.4. Objeto session 9.6. Servicios web 9.7. Protocolo SOAP 9.8. Breve reseña de la arquitectura REST 9.9. Conclusiones |
|
Semanas 13, 14 y 15 |
Unidad 10. Paradigmas Avanzados de Computación Distribuida 10.1. Introducción 10.2. Paradigma MOM 10.3. Paradigma de agentes software móviles 10.4. Paradigma de espacio de objetos 10.5. Computación colaborativa 10.6. Tendencias futuras en computación distribuida 10.7. Conclusiones |
|
Resto de semanas hasta finalización del semestre | Estudio y preparación para el examen final, celebración del examen final y cierre de actas. |
Tipo de actividad | Actividades planificadas | Peso clasificación |
---|---|---|
Actividades de aprendizaje | 4 | 10% |
Actividades de Ebaluación Continua (AEC) | 4 | 20% |
Controles | 4 | 10% |
Examen final | 0 | 60% |
Total | 100% |
Para aprobar la asignatura, es necesario obtener una calificación mínima de 5 en el examen final presencial, así como en la calificación total del curso, una vez realizado el cómputo ponderado de las calificaciones obtenidas en las actividades didácticas y en el examen final presencial.
Si un estudiante no aprueba la asignatura en la convocatoria ordinaria podrá examinarse en la convocatoria de septiembre.
Las fechas previstas para la realización de todas las actividades se indican en el aula virtual de la asignatura.
Según la Real Academia Española, “plagiar” significa copiar en lo sustancial obras ajenas dándolas como propias. Dicho de otro modo, plagiar implica expresar las ideas de otra persona como si fuesen propias, sin citar la autoría de las mismas. Igualmente, la apropiación de contenido puede ser debida a una inclusión excesiva de información procedente de una misma fuente, pese a que esta haya sido citada adecuadamente. Teniendo en cuenta lo anterior, el estudiante deberá desarrollar sus conocimientos con sus propias palabras y expresiones. En ningún caso se aceptarán copias literales de párrafos, imágenes, gráficos, tablas, etc. de los materiales consultados. En caso de ser necesaria su reproducción, esta deberá contemplar las normas adecuadas para la citación académica.
Los documentos que sean presentados en las actividades académicas podrán ser sometidos a diferentes mecanismos de comprobación de la originalidad (herramientas antiplagios que detectan coincidencias de texto con otras fuentes, comparación con trabajos de otros estudiantes, comparación con información publicada en Internet, etc). El profesor valorará si el trabajo presentado cuenta con los criterios de originalidad exigidos o, en su caso, se atribuye adecuadamente la información no propia a las fuentes correspondientes. La adjudicación como propia de información que corresponde a otros autores podrá suponer el suspenso de la actividad.
Los documentos presentados en las actividades académicas podrán ser almacenados en formato papel o electrónico y servir de comparación con otros trabajos de terceros, a fin de proteger la originalidad de la fuente y evitar la apropiación indebida de todo o parte del trabajo del estudiante. Por tanto, podrán ser utilizados y almacenados por la universidad, a través del sistema que estime, con el único fin de servir como fuente de comparación de cualquier otro trabajo que se presente.
El sistema de calificación de todas las actividades didácticas es numérico del 0 a 10 con expresión de un decimal, al que se añade su correspondiente calificación cualitativa:
0 - 4.9: Suspenso (SU) 5.0 - 6.9: Aprobado (AP) 7.0 - 8.9: Notable (NT) 9.0 - 10: Sobresaliente (SB)
(RD 1125/2003, de 5 de septiembre, por lo que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y con validez en todo el territorio nacional).
Código de la asignatura | 1398 |
---|---|
Nº Créditos ECTS | 6 |
Tipo | Obligatoria |
Duración | Semestral |
Idiomas | Castellano |
Planes de estudio | |
Profesor(es) | |
Año académico | 2024-25 |
Los últimos avances en las redes de comunicaciones han incrementado la importancia de la computación distribuida en las disciplinas de las ciencias de la computación.
La computación distribuida es aquella que se lleva a cabo en un sistema distribuido, que se define como un conjunto de computadores interconectados a través de una red y que son capaces de colaborar entre sí para lograr un fin común.
Esta asignatura explora las formas en que lo programas, ejecutando en computadores independientes, colaboran con otros con el fin de llevar a cabo una determinada tarea de computación, tal como los servicios de red o las aplicaciones basadas en la Web. En la asignatura se estudia la evolución de los sistemas distribuidos, los paradigmas de programación distribuida existentes y las APIs, conjuntos de herramientas, protocolos y estándares necesarios para desarrollar un sistema distribuido.
Es altamente recomendable para el aprovechamiento de esta asignatura tener conocimientos de redes de computadores, de sistemas operativos y de programación.
SEMANAS (*) | UNIDADES DIDÁCTICAS | ACTIVIDADES DIDÁCTICAS |
---|---|---|
Semana 1 | Unidad 1. Introducción a la computación distribuida 1.1. Conceptos básicos 1.2. Computación monolítica, distribuida, paralela y cooperativa 1.3. Ventajas, inconvenientes y desafíos de los sistemas distribuidos 1.4. Conceptos previos sobre sistemas operativos: procesos y concurrencia 1.5. Conceptos previos sobre redes 1.6. Conceptos previos sobre Ingeniería del Software 1.7. Organización de este manual 1.8. Conclusiones |
|
Semanas 2 y 3 | Unidad 2. Paradigmas de computación distribuida y comunicación entre procesos 2.1. Comunicación entre procesos 2.2. Sincronización de eventos 2.2.1. Supuesto 1: envío síncrono y recepción síncrona 2.2.2. Supuesto 2: envío asíncrono y recepción síncrona 2.2.3. Supuesto 3: envío síncrono y recepción asíncrona 2.2.4. Supuesto 4: envío asíncrono y recepción asíncrona 2.3. Interbloqueos y temporizadores 2.4. Representación y codificación de datos 2.5. Clasificación y descripción de los paradigmas de computación distribuida 2.6. Java como entorno de desarrollo de sistemas distribuidos |
|
Semana 4 | Unidad 3. API de paso de mensajes con Sockets 3.1. API de sockets, tipos y diferencias 3.2. Sockets de tipo datagrama 3.3. Sockets de tipo stream 3.4. Solución a interbloqueos: temporizadores y eventos no bloqueantes 3.5. Seguridad en sockets 3.6. Conclusiones |
|
Semana 5 | Unidad 4. Paradigma Cliente-Servidor 4.1. Características y conceptos fundamentales de los sistemas distribuidos de tipo cliente-servidor 4.2. Proceso de diseño e implementación de un sistema cliente-servidor 4.3. Problemas de direccionamiento no orientado a conexión con clientes anónimos 4.4. Servidores iterativos y concurrentes 4.5. Información de estado y de sesión 4.5.1. Información de sesión 4.5.2. Información de estado global 4.6. Clientes complejos recibiendo respuestas asíncronas desde el lado servidor 4.7. Servidores complejos actuando como intermediadores entre varios clientes |
|
Semana 6 | Unidad 5. Comunicación por Multidifusión 5.1. Introducción a la multidifusión y usos comunes 5.2. Fiabilidad y ordenación en los sistemas multidifusión 5.3. Implementación Java de sistemas de multidifusión 5.4. Ejemplo de uso de la comunicación en grupo entre iguales 5.5. Implementaciones de multidifusión fiable 5.6. Multitransmisión a nivel de aplicación 5.7. Conclusiones |
|
Semanas 7 y 8 | Unidad 6. Objetos Distribuidos 6.1. Introducción 6.2. Arquitectura de una aplicación basada en objetos distribuidos 6.3. Tecnologías de sistemas de objetos distribuidos 6.4. Capas software de Java RMI en el lado cliente y en el lado servidor 6.5. API Java RMI de objetos distribuidos 6.6. Pasos para construir una aplicación RMI 6.7. Uso de callback en RMI 6.8. Descarga dinámica de resguardos de objetos remotos y gestor de seguridad RMI 6.9. Conclusiones |
|
Semana 9 |
Unidad 7. HTML, XML, HTTP y CGI 7.1. Introducción 7.2. Lenguaje HTML 7.3. Lenguaje XML 7.4. Protocolo de Internet: HTTP 7.5. Uso de contenidos dinámicos: manejo de formularios y CGI 7.6. Manejo de datos de estado y sesión en Internet 7.7. Conclusiones |
|
Semana 10 | Unidad 8. Objetos distribuidos multi-lenguaje: CORBA 8.1. Introducción 8.2. Arquitectura CORBA 8.3. Lenguaje de descripción de interfaz en CORBA 8.4. Protocolos de interoperabilidad GIOP 8.5. Referencias a objeto remoto IOR 8.6.Servicio de nombrado CORBA 8.7. Ejemplo en IDL Java 8.8. Pasos de diseño, compilación y ejecución en IDL Java 8.9. Conclusiones |
|
Semanas 11 y 12 | Unidad 9. Servlets y Servicios Web 9.1. Introducción 9.2. Applets 9.3. Introducción a los Servlets 9.4. Servlets HTTP y su funcionamiento 9.5. Mantenimiento de la información de estado en Servlets 9.5.1. Campos ocultos de formularios 9.5.2. Cookies 9.5.3. Variables de Servlet 9.5.4. Objeto session 9.6. Servicios web 9.7. Protocolo SOAP 9.8. Breve reseña de la arquitectura REST 9.9. Conclusiones |
|
Semanas 13, 14 y 15 |
Unidad 10. Paradigmas Avanzados de Computación Distribuida 10.1. Introducción 10.2. Paradigma MOM 10.3. Paradigma de agentes software móviles 10.4. Paradigma de espacio de objetos 10.5. Computación colaborativa 10.6. Tendencias futuras en computación distribuida 10.7. Conclusiones |
|
Resto de semanas hasta finalización del semestre | Estudio y preparación para el examen final, celebración del examen final y cierre de actas. |
Tipo de actividad | Actividades planificadas | Peso clasificación |
---|---|---|
Actividades de aprendizaje | 4 | 10% |
Actividades de Ebaluación Continua (AEC) | 4 | 20% |
Controles | 4 | 10% |
Examen final | 0 | 60% |
Total | 100% |
Para aprobar la asignatura, es necesario obtener una calificación mínima de 5 en el examen final presencial, así como en la calificación total del curso, una vez realizado el cómputo ponderado de las calificaciones obtenidas en las actividades didácticas y en el examen final presencial.
Si un estudiante no aprueba la asignatura en la convocatoria ordinaria podrá examinarse en la convocatoria de septiembre.
Las fechas previstas para la realización de todas las actividades se indican en el aula virtual de la asignatura.
Según la Real Academia Española, “plagiar” significa copiar en lo sustancial obras ajenas dándolas como propias. Dicho de otro modo, plagiar implica expresar las ideas de otra persona como si fuesen propias, sin citar la autoría de las mismas. Igualmente, la apropiación de contenido puede ser debida a una inclusión excesiva de información procedente de una misma fuente, pese a que esta haya sido citada adecuadamente. Teniendo en cuenta lo anterior, el estudiante deberá desarrollar sus conocimientos con sus propias palabras y expresiones. En ningún caso se aceptarán copias literales de párrafos, imágenes, gráficos, tablas, etc. de los materiales consultados. En caso de ser necesaria su reproducción, esta deberá contemplar las normas adecuadas para la citación académica.
Los documentos que sean presentados en las actividades académicas podrán ser sometidos a diferentes mecanismos de comprobación de la originalidad (herramientas antiplagios que detectan coincidencias de texto con otras fuentes, comparación con trabajos de otros estudiantes, comparación con información publicada en Internet, etc). El profesor valorará si el trabajo presentado cuenta con los criterios de originalidad exigidos o, en su caso, se atribuye adecuadamente la información no propia a las fuentes correspondientes. La adjudicación como propia de información que corresponde a otros autores podrá suponer el suspenso de la actividad.
Los documentos presentados en las actividades académicas podrán ser almacenados en formato papel o electrónico y servir de comparación con otros trabajos de terceros, a fin de proteger la originalidad de la fuente y evitar la apropiación indebida de todo o parte del trabajo del estudiante. Por tanto, podrán ser utilizados y almacenados por la universidad, a través del sistema que estime, con el único fin de servir como fuente de comparación de cualquier otro trabajo que se presente.
El sistema de calificación de todas las actividades didácticas es numérico del 0 a 10 con expresión de un decimal, al que se añade su correspondiente calificación cualitativa:
0 - 4.9: Suspenso (SU) 5.0 - 6.9: Aprobado (AP) 7.0 - 8.9: Notable (NT) 9.0 - 10: Sobresaliente (SB)
(RD 1125/2003, de 5 de septiembre, por lo que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y con validez en todo el territorio nacional).