Programa elaborado por: PROGRAMA DE ESTUDIO Aplicaciones distribuidas Programa Educativo: Licenciatura en Informática Administrativa Área de Formación : Integral Profesional Horas teóricas: 2 Horas prácticas: 2 Total de Horas: 4 Total de créditos: 6 Clave: F1182 Tipo : Asignatura Carácter de la Optativa asignatura M. en C. Pablo Pancardo García Fecha de elaboración: 25/05/2010 Fecha de última actualización: 17/06/2010 Seriación explícita Asignatura antecedente No Asignatura Subsecuente Seriación implícita Conocimientos previos: Si Sistemas operativos Redes de computadoras y protocolos de comunicaciones. Programación con orientación a objetos. Ingeniería de software F1182 Aplicaciones distribuidas 1/8
Presentación Esta asignatura se ubica dentro del Área de Formación Integral Profesional. El estudiante requiere de conocimientos previos de sistemas operativos, redes de computadoras, programación orientada a objetos e ingeniería de software. Es recomendable que se curse en último tercio de la Licenciatura. Los conocimientos adquiridos en esta asignatura permitirán que el alumno tenga nociones de las tecnologías para el diseño y desarrollo de aplicaciones en sistemas distribuidos. Asimismo, el alumno desarrollará las habilidades necesarias para evaluar las ventajas y desventajas de los sistemas distribuidos con respecto a otros modelos de cómputo. La enseñanza de la asignatura en esta licenciatura fortalecerá el perfil del estudiante mediante el análisis, diseño, construcción e implementación de software basados en computadoras aplicando metodologías y paradigmas de desarrollo de vanguardia a través del dominio de herramientas de desarrollo de software. Objetivo General Diseñar aplicaciones distribuidas bajo una arquitectura orientada a servicios. Competencias que se desarrollaran en esta asignatura Conocimientos de distintos modelos de sistemas distribuidos, la comunicación entre procesos y tecnologías para el desarrollo de aplicaciones distribuidas bajo una orientación a servicios. Se desarrollan habilidades en la aplicación de tecnología para la invocación de métodos remotos, el empleo de sockets de comunicación y ejemplos de los protocolos UDP (User Datagram Protocol) y TCP (Transport Control Protocol). Desarrollo de aplicaciones de comunicaciones empleando Java. Se incentiva el desarrollo de habilidades mentales como lógica, observación y análisis. De igual forma, se dan las bases para la evaluación y selección de tecnología pertinente para el F1182 Aplicaciones distribuidas 2/8
desarrollo de servicios Web en ambientes distribuidos. Las actitudes que se fomentan es la apertura a nuevas tecnologías, así como creatividad en su aplicación en una problemática del entorno social. Es un valor necesario en esta asignatura la responsabilidad en la entrega puntual de sus trabajos. Lo anterior es primordial para el buen seguimiento de los temas del curso que lleven al estudiante hacia el aprendizaje. Se promueve la honestidad al incentivar al estudiante para que realice de modo individual aquellas actividades recomendadas para ser ejecutadas de manera independiente. Competencias del perfil de egreso que apoya esta asignatura Cursar esta materia contribuye a que el estudiante sea competente en la integración de aplicaciones para las organizaciones y en el desarrollo y gestoría de sistemas distribuidos en redes empresariales. Salón de clases, sala de cómputo, Internet. Escenario de aprendizaje Perfil sugerido del docente El perfil ideal del docente de Aplicaciones Distribuidas es un profesional egresado de Licenciatura en Informática, Sistemas Computacionales o áreas afines con especialidad en sistemas distribuidos o redes de computadoras. Son actitudes necesarias en el docente de esta asignatura: F1182 Aplicaciones distribuidas 3/8
Que promueva el aprendizaje participativo y el pensamiento crítico. Que aplique las herramientas pertinentes en el desarrollo de sus actividades académicas y profesionales. Un perfil alternativo es un profesional con experiencia en redes de computadoras o programación de sistemas en red Contenido temático Unidad No. I Fundamentos de sistemas distribuidos Objetivo particular Programar los esquemas de comunicación básicos en los sistemas distribuidos. Hrs. Estimadas 20 1.1 Conceptos y modelos 1.2 Comunicación entre procesos 1.3 Sockets Temas Resultados del aprendizaje Sugerencias didácticas Estrategias y criterios de evaluación Mapa conceptual y ensayo de los fundamentos y Estrategias: Portafolio de modelos de los sistemas evidencias. distribuidos.. 1.4 Comunicación TCP, UDP. Ejercicio resuelto de la comunicación entre procesos Ejercicio resuelto de sockets de comunicación Exposición oral por parte del profesor y solución de ejercicios por parte del profesor. Solución de ejercicios en el laboratorio e investigaciones por parte de los alumnos. Criterio de evaluación: Mapa que represente toda la información del tema y ensayo que integre los puntos de vista de varios autores y haga énfasis en las aportaciones del alumno. F1182 Aplicaciones distribuidas 4/8
Ejercicio resuelto de la comunicación UDP (User Datagram Protocol) y TCP (Transport Control Protocol) Los ejercicios deben ejecutarse sin errores. Unidad No. II Aplicaciones en sistemas distribuidos Objetivo particular Aplicar distintas tecnologías para el diseño y desarrollo de aplicaciones que empleen objetos distribuidos. Hrs. Estimadas 20 Temas Resultados del aprendizaje Sugerencias didácticas Estrategias y criterios de evaluación 2.1 RMI 2.2 CORBA Reporte de aplicaciones distribuidas en donde un objeto local pueda invocar y obtener resultados de los métodos pertenecientes a un objeto remoto. Reporte de aplicaciones distribuidas en donde se ilustre que dos programas heterogéneos pueden interoperar. Demostración de ejemplos de invocación de métodos remotos. Prácticas en el laboratorio de cómputo Demostración de una aplicación en donde se implemente un ORB. Estrategia: Portafolio de evidencias. Criterio de evaluación: Reporte correctamente documentado y resultados impresos de la ejecución de los programas sin errores Reporte en donde se haga F1182 Aplicaciones distribuidas 5/8
uso de de un ORB (Object Request Broker). Unidad No. III Diseño de Servicios Web distribuidos Objetivo particular Diseñar una aplicación distribuida que emplee tecnologías relacionadas con la orientación a servicios Web. Hrs. Estimadas 24 Temas Resultados del aprendizaje Sugerencias didácticas Estrategias y criterios de evaluación 3.1 SOA (Service Oriented Architecture) y Servicios Web 3.2 Tecnologías para servicios Web (XML, WSDL, SOAP, UDDI, REST) 3.3 Lenguaje de modelado unificado (UML) Ensayo en donde se caracterice un servicio Web y una arquitectura orientada a servicios Resumen de algunas tecnologías que hacen posible el desarrollo de servicios Web Reporte del diseño de servicios Web bajo una arquitectura orientada a servicios Exposición audiovisual por parte del profesor Desarrollo de ejemplos en donde se empleen las tecnologías estudiadas Ejercicios de modelado de sistemas Estrategias: Portafolio de evidencias Criterio de evaluación: Verificar que se encuentren diferenciados los conceptos. Ejecución sin errores de los ejemplos y servicios Web. El diseño resultante debe considerar las características de la aplicación que se modela y plasmar de modo claro cómo el diseño va a dar respuesta a las necesidades de información F1182 Aplicaciones distribuidas 6/8
Bibliografía básica Birman, K., (2005). Reliable distributed systems: technologies, Web services, and applications. New York: Springer. Coulouris, G., (2005). Distributed systems: concepts and design (4º ed.). New York: Addison-Wesley. Hostetler, G. (2009). Web service and SOA technologies: protect your project and career by understanding the common mistakes (2º ed.). Denver: Practicing Safe Techs. Tanenbaum, A. (2008). Sistemas distribuidos: Principios y paradigmas. Tanenbaum, A. (2009). Sistemas operativos modernos. Bibliografía complementaria Aleksy, M., (2005). Implementing distributed systems with Java and CORBA. New York: Springer. Liu, M. L., (2004). Computación Distribuida. Fundamentos y Aplicaciones). Madrid: Addisson-Wesley. Papazoglou, M., (2008). Web services: principles and technology. New York: Pearson/Prentice Hall. Stepisnik, J., (2007). Distributed object-oriented architectures: Sockets, Java RMI and CORBA. Hamburg: Diplomica. F1182 Aplicaciones distribuidas 7/8