UNIVERSIDAD AUTONÓMA DE TAMAULIPAS...Comprenderá los fundamentos de los Sistemas Distribuidos en...
Transcript of UNIVERSIDAD AUTONÓMA DE TAMAULIPAS...Comprenderá los fundamentos de los Sistemas Distribuidos en...
UNIVERSIDAD AUTONÓMA DE TAMAULIPAS
FACULTAD DE INGENIERÍA “ARTURO NARRO SILLER”
NOMBRE DE LA CARRERA
INGENIERIA EN SISTEMAS COMPUTACIONALES
NOMBRE DE LA ASIGNATURA
DISEÑO DE SISTEMAS EN REDES GLOBALES
PROGRAMA DE ESTUDIOS
LUGAR Y FECHA TAMPICO, TAMPS. 14 de agosto de 2017
R-RS-01-25-03
DATOS REFERENCIALES NUCLEO DE PERIODO CLAVE CREDITOS CARGA H O R A S
FORMACION HORARIA CONDUCIDAS
POR
PROFESOR
DE TRABAJO
INDEPENDIENTES
DEL ALUMNO PROFESIONAL
9 O
M.IT18.4
23.05-05
4 3 3 1
ANTECEDENTE CONSECUENTE
MATERIAS
SISTEMAS OPERATIVOS DE RED
DESCRIPCION GENERAL DE LA ASIGNATURA
Los temas de estudio que comprende este curso tienen como meta comprender las ideas centrales del
diseño de Sistemas en Redes Globales utilizando las tecnologías de comunicación y Sistemas de
información distribuidos.
Comprende el estudio de los conceptos básicos de sistemas distribuidos, procesos distribuidos, el sistema
de nombres, sincronización, consistencia y replicación, tolerancia a fallos y la seguridad relacionada a
los sistemas distribuidos.
Se analiza el caso de los sistemas basados en el Web como un caso de estudio en donde se involucran
todos los elementos de los sistemas distribuidos en las redes globales.
INTENCION EDUCATIVA
El propósito del curso es explicarle al alumno las bases necesarias para comprender los conceptos que se
plantean en este programa y al mismo tiempo encaminarlo por medio de un conjunto de actividades para
que acepte el compromiso de complementar y profundizar tanto los temas expuestos por el Profesor así
como aquellos que son asignados para que el alumno los desarrolle por su cuenta ya sea de manera
individual o colectiva dentro o fuera de clase.
En resumen: Teniendo como plataforma los temas del Diseño de sistemas en redes globales, el alumno
deberá estudiar y desarrollar los contenidos temáticos con el propósito de adquirir seguridad en sí
mismo, deberá ser independiente, podrá aprender por si mismo, podrá aceptar retos y compromisos,
podrá expresar conceptos en sus propias palabras, podrá investigar otros temas relacionados con este
curso, podrá perfeccionar hábitos de estudio y de disciplina, así como ser creativo y proponer soluciones
factibles de implementar en problemas relacionados a sistemas de software en redes globales.
OBJETIVO(S) GENERAL (ES)
Al finalizar el curso el alumno:
Comprenderá los fundamentos de los Sistemas Distribuidos en Redes Globales aplicados a problemas
reales así como el manejo de otros sistemas coordinados con el fin de diseñar, implementar e integrar
tecnologías de comunicaciones, soluciones de software y recurso humano en problemas de la vida diaria.
El comprender estas generalizaciones, el alumno podrá interpretar, diseñar e implementar modelos
complejos y por lo tanto estará en condiciones de resolver problemas de ingeniería mas cercanos a la
realidad.
UNIDADES CONTENIDOS TEMATICOS OBJETIVOS PARTICULARES
Unidad I
Introducción
1.1 Definición de un Sistema Distribuido
1.2 Objetivos de los sistemas distribuidos
1.2.1 Accesibilidad de los recursos
1.2.2 Distribución
1.2.3 Grado de apertura
1.2.4 Escalabilidad.
1.3 Tipos de sistemas distribuidos
1.3.1 Distribuidos de cómputo
1.3.2 Distribuidos de información
1.3.3 Distribuidos Masivos
1.4 Arquitecturas
1.4.1 Modelos arquitectónicos
1.4.1.1 Arquitecturas Centralizadas
1.4.1.2 Arquitecturas Descentralizadas
1.4.1.3 Arquitecturas Distribuidas
1.4.2 Arquitecturas Vs Middleware
1.4.2.1 Interceptores
1.4.2.2 Métodos generales para software adaptivo
1.5 Auto administración en sistemas distribuidos
1. Al terminar esta unidad, el alumno comprenderá y aplicara
las propiedades fundamentales de los sistemas distribuidos.
1.1 COMPRENDER QUE ES UN SISTEMA DISTRIBUIDO.
1.2 El alumno comprenderá los cuatro objetivos fundamentales
de los Sistemas Distribuidos.
1.3. El alumno reconocerá los distintos tipos de sistemas
distribuidos e identificará sus principales características.
1.4. El alumno reconocerá las diferentes arquitecturas de los
sistemas distribuidos.
1.5. El alumno conocerá y comprenderá las diferentes formas de
administración de los sistemas distribuidos.
UNIDADES CONTENIDOS TEMATICOS OBJETIVOS PARTICULARES
Unidad II.
Procesos Distribuidos.
2.1 Hilos en sistemas distribuidos
2.1.1 Introducción a los Hilos
2.1.2 Hilos en los sistemas distribuidos.
2.2 Virtualización
2.2.1 Rol de la virtualización en los sistemas distribuidos
2.2.2 Arquitectura de las máquinas virtuales
2.3 Clientes
2.3.1 Interfaces de usuario en red.
2.3.2 Software del Cliente para transparencia de distribución.
2.4 Servidores
2.4.1 Temas Generales de Diseño
2.4.2 Servidores de clústeres
2.4.3 Servidores en Malla
2.4.4 Administración de servidores distribuidos
2.5 Migración de código
2.5.1 Métodos para la migración de código
2.5.2 Migración y recursos locales
2.5.3 Migración y recursos heterogéneos
2.6 Comunicación entre procesos distribuidos
2.6.1 Fundamentos
2.6.1.1 Protocolos en capas.
2.6.1.2 Tipos de comunicación.
2.6.2 Llamadas a procedimientos remotos
2.6.2.1 Operación básica RPC
2.6.2.2 Paso de parámetros
2.6.2.3 RPC asíncrona
2.6.3 Comunicación orientada a mensajes
2.6.3.1 Comunicación transitoria.
2.6.3.2 Comunicación persistente.
2.6.4 Comunicación orientada a flujos.
2. Al terminar esta unidad, el alumno comprenderá y aplicara
las propiedades fundamentales de los procesos distribuidos.
2.1 Comprender el concepto de hilos de ejecución en un sistema
distribuido.
2.2 El alumno comprenderá los conceptos de virtualización
aplicados a los sistemas distribuidos.
2.3 El alumno comprenderá el concepto de Clientes en los
procesos distribuidos aplicados a los sistemas cliente
servidor.
2.4 El alumno comprenderá el concepto de Servidor en los
procesos distribuidos aplicados a los sistemas cliente
servidor.
2.5 El alumno conocerá y aplicará los métodos y procesos para
la migración de código a sistemas distribuidos.
2.6 El alumno conocerá y aplicará los métodos y procesos para
la migración de código a sistemas distribuidos.
2.6.4.1 Soporte para medios continuos
2.6.4.2 Flujos y calidad del servicio
2.6.4.3 Sincronización de flujos.
2.6.5 Comunicación por multi transmisión.
2.6.5.1 Multi transmisión al nivel de aplicación.
2.6.5.2 Diseminación de datos basados en el gossip.
Unidad III.
Sistema de nombres.
3.1 Nombres, identificadores y direcciones
3.2 Nombres planos
3.2.1 Soluciones Simples
3.2.2 Métodos basados en el origen.
3.2.3 Tablas Hash distribuidas.
3.2.4 Métodos jerárquicos
3.3 Nombres estructurados.
3.3.1 Espacio de nombres.
3.3.2 Resolución de nombres
3.3.3 Implementación de un espacio de nombres
3.3.4 El sistema de nombres de dominio.
3.4 Nombres basados en atributos.
3.4.1 Servicios de directorio
3.4.2 Implementaciones jerárquicas: LADP
3.4.3 Implementaciones descentralizadas.
3. Al terminar esta unidad, el alumno comprenderá y aplicara
las propiedades de los sistemas de nomenclatura para los
sistemas distribuidos.
3.1 Comprender la composición de nombres, identificadores y
direcciones en los sistemas distribuidos.
3.2 El alumno comprenderá los métodos de resolución de
nombres en los sistemas de nombres planos.
3.3 El alumno comprenderá el mecanismo para la resolución de
nombres en el sistema de nombres estructurados.
3.4 El alumno comprenderá la implementación de Nombres
basados en atributos en los sistemas distribuidos.
UNIDADES CONTENIDOS TEMATICOS OBJETIVOS PARTICULARES
Unidad IV
Sincronización.
4.1 Sincronización del reloj
4.1.1 Relojes Físicos
4.1.2 Sistemas de posicionamiento global
4.1.3 Algoritmos de sincronización de relojes.
4.2 Relojes lógicos
4.2.1 Relojes lógicos de Lamport
4.2.2 Relojes vectoriales.
4.3 Exclusión mutua.
4.3.1 Visión general.
4.3.2 Algoritmo centralizado
4.3.3 Algoritmo descentralizado
4.3.4 Algoritmo distribuido
4.3.5 Algoritmo de anillo de token
4.3.6 Comparación de los 4 algoritmos.
4.4 Posicionamiento global de los nodos.
4.5 Algoritmos de elección.
4.5.1 Algoritmos de elección tradicional
4.5.2 Elecciones en ambientes inalámbricos
4.5.3 Elecciones en sistemas de gran escala.
4. Al terminar esta unidad, el alumno entenderá y aplicara la
sincronización en los problemas de sincronía para los
sistemas distribuidos.
4.1 Comprender la Sincronización de reloj a problemas de
sincronía en sistemas distribuidos.
4.2 Comprender la aplicará la Sincronización de relojes lógicos a
problemas de sincronía en sistemas distribuidos.
4.3 Comprender la conocerá y comprenderá la solución mediante
cuatro algoritmos de exclusión mutua aplicados a problemas
de Sincronización en sistemas distribuidos.
4.4 El alumno comprenderá e implementara algoritmos de
Posicionamiento global de nodos en los sistemas
distribuidos.
4.5 El alumno comprenderá la implementación de algoritmos de
elección para resolver problemas de sincronización en los
sistemas distribuidos.
Unidad V
Consistencia y replicación.
5.1 Introducción.
5. Al terminar esta unidad, el alumno entenderá y aplicara los
diferentes métodos de replicación aplicados en los sistemas
distribuidos.
5.1 Comprender las razones para replicar partes de un sistema
5.1.1 Razones para replicar.
5.1.2 Replicación como técnica de escalamiento.
5.2 Modelos de consistencia centrada en los datos.
5.2.1 Consistencia continua
5.2.2 Ordenamiento consistente de operaciones
5.3 Modelos de consistencia centrada en el cliente.
5.3.1 Consistencia momentánea.
5.3.2 Lecturas monotónicas.
5.3.3 Escrituras monotónicas
5.3.4 Modelo Lea sus escrituras.
5.3.5 Modelo Las escrituras siguen a las lecturas.
5.4 Administración de replicas.
5.4.1 Ubicación del servidor de replicas.
5.4.2 Ubicación y replicación de contenido.
5.4.3 Distribución de contenido.
5.5 Protocolos de consistencia.
5.5.1 Consistencia continúa.
5.5.2 Protocolos basados en primarias
5.5.3 Protocolos de escritura replicados
5.5.4 Protocolos de coherencia de caché
5.5.5 Implementación de la consistencia centrada en el
cliente.
distribuido.
5.2 Comprenderá los métodos de Consistencia centrada en datos
en los sistemas distribuidos.
5.3 Aprenderá los modelos de consistencia que se aplican en la
parte del cliente.
5.4 El alumno estudiará, comprenderá e implementara la
administración de replicas para la distribución de contenidos.
5.5 El alumno estudiará los diferentes protocolos de consistencia
aplicados a los sistemas distribuidos.
Unidad VI
Tolerancia a fallas.
6.1 Introducción.
6.1.1 Conceptos básicos.
6.1.2 Modelos de falla
6.1.3 Disfrazado de fallas por redundancia
6. Al terminar esta unidad, el alumno conocerá y aplicara los
diferentes métodos de recuperación ante fallos en los
sistemas distribuidos.
6.1 Comprender los conceptos relacionados a la tolerancia a
fallos en los sistemas distribuidos.
6.2 Atenuación de un proceso.
6.2.1 Temas de diseño
6.2.2 Enmascaramiento de fallas y replicación
6.2.3 Acuerdo en sistemas defectuosos.
6.2.4 Detección de fallas.
6.3 Comunicación confiable entre cliente y servidor.
6.3.1 Comunicación punto a punto.
6.3.2 Comunicación RPC en presencia de fallas.
6.4 Comunicación de grupo confiable.
6.4.1 Esquema de multi transmisión básicos confiables.
6.4.2 Escalabilidad en multi transmisión confiable.
6.4.3 Multi transmisión atómica.
6.5 Realización distribuida.
6.5.1 Realización bifásica.
6.5.2 Realización trifásica.
6.6 Recuperación
6.6.1 Introducción
6.6.2 Marcación de puntos de control
6.6.3 Registro de mensajes
6.6.4 Computación orientada a la recuperación.
6.2 Comprenderá los conceptos de enmascaramiento de fallas,
conocerá los acuerdos de operación en sistemas defectuosos,
los mecanismos de detección y temas relacionados al diseño
de tolerancia a fallos en los sistemas distribuidos.
6.3 El alumno conocerá los mecanismos de comunicación
confiable entre sistemas clientes y sistemas servidores en los
sistemas distribuidos.
6.4 El alumnos conocerá los esquemas de comunicación de
grupo confiable en la transmisión de mensajes entre los
sistemas distribuidos.
6.5 El alumno comprenderá los esquemas de realización bifásica
y trifásica en los sistemas distribuidos.
6.6 El alumno entenderá los mecanismos de recuperación ante
fallas en la comunicación en los sistemas distribuidos.
Unidad VII
Seguridad.
7.1 Introducción.
7.1.1 Amenazas, políticas y mecanismos de seguridad.
7.1.2 Temas de diseño
7.1.3 Criptografía
7. Al terminar la unidad, el alumno conocerá y aplicara los
diferentes mecanismos de seguridad aplicados en los
sistemas distribuidos.
7.1 El alumno conocerá las amenazas, políticas, mecanismos de
seguridad, criptografía de mensajes y temas de diseño a la
seguridad de los sistemas distribuidos.
Unidad VIII
7.2 Canales seguros.
7.2.1 Autenticación.
7.2.2 Integridad y confidencialidad del mensaje
7.2.3 Comunicación segura de un grupo
7.3 Control de acceso.
7.3.1 Temas generales del control de acceso
7.3.2 Cortafuegos (Firewall)
7.3.3 Código móvil seguro.
7.3.4 Negación del servicio.
7.4 Administración de la seguridad.
7.4.1 Administración de claves.
7.4.2 Administración de un grupo seguro
7.4.3 Administración de la autorización.
Caso de estudio. Sistemas distribuidos basados en el WEB.
8.1 Arquitectura.
8.1.1 Sistemas tradicionales basados en el web.
8.1.2 Servicios WEB
8.1.3 Criptografía
8.2 Procesos.
8.2.1 Clientes.
8.2.2 Servidores WEB Apache
8.2.3 Servidores WEB basados en clústeres.
8.3 Comunicación.
8.3.1 Protocolo HTTP
8.3.2 Protocolo de acceso a un objeto simple.
7.2 El alumno comprenderá los conceptos de autenticación,
integridad, confidencialidad y comunicación segura en los
sistemas distribuidos.
7.3 El alumno conocerá los diferentes mecanismos de control de
acceso en los sistemas distribuidos.
7.4 El alumno conocerá los esquemas de administración de la
seguridad entre los sistemas distribuidos.
8. Al terminar esta unidad, el alumno conocerá y comprenderá
los fundamentos de los Sistemas Distribuidos aplicados a un
problema real como caso de estudio, los Sistemas
distribuidos basados en el Web, en donde aplicará todos los
conceptos y técnicas aprendidos a lo largo del curso.
8.4 Asignación de nombres.
8.5 Sincronización.
8.6 Consistencia y replicación.
8.6.1 Almacenamiento en el caché de un proxy web.
8.6.2 Replicación de sistemas de alojamiento en la Web
8.6.3 Replicación de aplicaciones Web
8.7 Tolerancia a fallas.
8.8 Seguridad.
UNIDADES ESTRATEGIAS DE APRENDIZAJE EN EL TRABAJO
CONDUCIDO POR EL PROFESOR
ESTRATEGIAS DE APRENDIZAJE EN EL TRABAJO
INDEPENDIENTE DEL ALUMNO
Unidad I.
Introducción
- Lluvias de Ideas.
- Mesas de Discusión en grupo.
- Exposición.
- Trabajo en equipo para la resolución de casos prácticos.
- Investigación documental en libros e internet
- Realización de mesas de discusión en grupo.
- Desarrollo de Prácticas en el Laboratorio.
- Elaboración de ensayos.
- Lecturas recomendadas.
- Resolver cuestionarios
- Proponer casos de aplicación de los temas estudiados.
Unidad II
Procesos
Distribuidos
- Lluvias de Ideas.
- Mesas de Discusión en grupo.
- Exposición.
- Trabajo en equipo para la resolución de casos prácticos.
- Análisis de sistemas cliente-servidor como un ejemplo de
sistemas distribuidos.
- Investigación documental en libros e internet
- Realización de mesas de discusión en grupo.
- Desarrollo de Prácticas en el Laboratorio.
- Elaboración de ensayos.
- Elaboración de resúmenes.
- Lecturas recomendadas.
- Resolver cuestionarios
- Proponer casos de aplicación de los temas estudiados.
- Exploración de software de virtualización.
- Análisis de la sistemas cliente servidos.
Unidad III.
Sistema de
nombres.
- Lluvias de Ideas.
- Mesas de Discusión en grupo.
- Exposición.
- Trabajo en equipo para la resolución de casos prácticos.
- Estudio de los DNS como ejemplo de la nomenclatura de
nombres en sistemas distribuidos.
- Investigación documental en libros e internet
- Realización de mesas de discusión en grupo.
- Desarrollo de Prácticas en el Laboratorio.
- Elaboración de ensayos.
- Lecturas recomendadas.
- Resolver cuestionarios
- Proponer casos de aplicación de los temas estudiados.
Unidad IV.
Sincronización
- Lluvias de Ideas.
- Mesas de Discusión en grupo.
- Exposición.
- Trabajo en equipo para la resolución de casos prácticos.
- Estudio de diferentes métodos para lograr la sincronización
entre sistemas distribuidos.
- Investigación documental en libros e internet
- Realización de mesas de discusión en grupo.
- Desarrollo de Prácticas en el Laboratorio.
- Elaboración de ensayos.
- Lecturas recomendadas.
- Resolver cuestionarios
- Proponer casos de aplicación de los temas estudiados.
Unidad V.
Consistencia y
replicación.
- Lluvias de Ideas.
- Mesas de Discusión en grupo.
- Exposición.
- Trabajo en equipo para la resolución de casos prácticos.
- Estudio de bases de datos distribuidas, su replicación y
consistencia y el papel que juegan en los sistemas
distribuidos.
- Investigación documental en libros e internet
- Realización de mesas de discusión en grupo.
- Desarrollo de Prácticas en el Laboratorio.
- Elaboración de ensayos.
- Lecturas recomendadas.
- Resolver cuestionarios
- Proponer casos de aplicación de los temas estudiados.
Unidad VI.
Tolerancia a
Fallas
- Lluvias de Ideas.
- Mesas de Discusión en grupo.
- Exposición.
- Trabajo en equipo para la resolución de casos prácticos.
- Investigación documental en libros e internet
- Realización de mesas de discusión en grupo.
- Desarrollo de Prácticas en el Laboratorio.
- Elaboración de ensayos.
- Análisis de los mecanismos para la recuperación de fallas y
evitar la pérdida de información en los sistemas distribuidos.
- Lecturas recomendadas.
- Resolver cuestionarios
- Proponer casos de aplicación de los temas estudiados.
Unidad VII.
Seguridad.
- Lluvias de Ideas.
- Mesas de Discusión en grupo.
- Exposición.
- Trabajo en equipo para la resolución de casos prácticos.
- Análisis de los métodos y estrategias que garanticen la
seguridad en los sistemas distribuidos.
- Investigación documental en libros e internet
- Realización de mesas de discusión en grupo.
- Desarrollo de Prácticas en el Laboratorio.
- Elaboración de ensayos.
- Lecturas recomendadas.
- Resolver cuestionarios
- Proponer casos de aplicación de los temas estudiados.
Unidad VIII.
Caso de estudio.
Sistemas
distribuidos
basados en el
WEB.
- Lluvias de Ideas.
- Mesas de Discusión en grupo.
- Exposición.
- Trabajo en equipo para la resolución de casos prácticos.
- Análisis de la Web como una plataforma para la
implementación de los Sistemas distribuidos
- Investigación documental en libros e internet
- Realización de mesas de discusión en grupo.
- Desarrollo de Prácticas en el Laboratorio.
- Elaboración de ensayos.
- Lecturas recomendadas.
- Resolver cuestionarios
- Proponer casos de aplicación de los temas estudiados.
SECUENCIA ESTRATEGIAS DE EVALUACION B I B L I O G R A F I A
BASICA COMPLEMETARIA
1 A Y 2
A
UNIDAD
3 A Y 4
A
UNIDAD
5 A Y 6
A
UNIDAD
7 A Y 8
A
UNIDAD
EXÁMEN ESCRITO 70 %
PARTICIPACIÓN EN CLASE
ACTIVIDADES EXTRA CLASE 30 %
TRABAJO EN EQUIPO
EXÁMEN ESCRITO 70 %
PARTICIPACIÓN EN CLASE
ACTIVIDADES EXTRA CLASE 30 %
TRABAJO EN EQUIPO
EXÁMEN ESCRITO 70 %
PARTICIPACIÓN EN CLASE
ACTIVIDADES EXTRA CLASE 30 %
TRABAJO EN EQUIPO
EXÁMEN ESCRITO 70 %
PARTICIPACIÓN EN CLASE
ACTIVIDADES EXTRA CLASE 30 %
TRABAJO EN EQUIPO
Andrew S. Tanenbaum, Maarten Van Steen.
Sistemas distribuidos, principios y
paradigmas, Segunda Edición. Pearson -
Prentice Hall. México , 2008.
Roger S. Pressman. Ingeniería de
Software. Quinta Edición. McGraw-
Hill Interamericana. Madrid. 2002.
George Coulouris. Sistemas
Distribuidos. Tercera Edición. Addison
Wesley. Madrid. 2001.
Andrews, Gregory R. (2000),
Foundations of Multithreaded, Parallel,
and Distributed Programming, Addison–
Wesley, ISBN 0-201-35752-6.
Arora, Sanjeev; Barak, Boaz (2009),
Computational Complexity – A Modern
Approach, Cambridge, ISBN 978-0-521-
42426-4.
Cormen, Thomas H.; Leiserson, Charles
E.; Rivest, Ronald L. (1990),
Introduction to Algorithms (1st ed.), MIT
Press, ISBN 0-262-03141-8.
Dolev, Shlomi (2000), Self-Stabilization,
MIT Press, ISBN 0-262-04178-2.
Elmasri, Ramez; Navathe, Shamkant B.
(2000), Fundamentals of Database
Systems (3rd ed.), Addison–Wesley,
ISBN 0-201-54263-3.
Ghosh, Sukumar (2007), Distributed
Systems – An Algorithmic Approach,
Chapman & Hall/CRC, ISBN 978-1-
58488-564-1.
Lynch, Nancy A. (1996), Distributed
Algorithms, Morgan Kaufmann, ISBN 1-
55860-348-4.
Papadimitriou, Christos H. (1994),
Computational Complexity, Addison–
Wesley, ISBN 0-201-53082-1.
Peleg, David (2000), Distributed
Computing: A Locality-Sensitive
Approach, SIAM, ISBN 0-89871-464-8,
http://www.ec-
securehost.com/SIAM/DT05.html.
COMISION ELABORADORA
NOMBRE FACULTAD O UNIDAD DE ADSCRIPCION
ACADEMIA DE REDES DE COMPUTADORA
FACULTAD DE INGENIERÍA “ARTURO NARRO SILLER”