APLICACIONES DISTRIBUIDAS Código de asignatura: 3871 Grado en Ingeniero en Informática Curso: 2011/2012 1 Datos asignatura • Profesor (Teo/Pra): Francisco Javier Bermúdez Ruiz • Seminario: Miércoles 15:15h – 15:45h : Aula A.0.5bis • Teoría: Miércoles 15:45h – 17:45h : Aula A.0.5bis • Prácticas: Viernes 9:30h – 11:30h : Lab. 2.0 • Correo: fjavier@um.es • Tutorías 1er cuatrimestre: • Martes :10:30h – 13:30h • Electrónicas por SUMA 2 Contenidos • Introducción • Metodología • Objetivos • Carga para el alumno • Conocimientos Previos • Evaluación • Programa de Teoría • Bibliografía • Programa de Prácticas • Cronograma • Seminarios 3 Introducción • Importancia del desarrollo de aplicaciones web en el mercado actual • Capa de presentación • Capa de persistencia • Capa de negocio • Uso de una arquitectura de n-capas con capa de negocio distribuida • Desarrollo sobre la plataforma Java: tecnologías y herramientas 4 Objetivos • Conocer los fundamentos de la programación distribuida y aplicar las distintas tecnologías para tal propósito. • Aplicar tecnologías Java para el desarrollo de aplicaciones web. • Aplicar tecnologías Java para el desarrollo de aplicaciones web en entornos distribuidos. • Optimizar las aplicaciones distribuidas a través del uso de arquitecturas y patrones de diseño. • Capa de presentación. • Capa de negocio. 5 Conocimientos previos • Programación Orientada a Objetos • Fundamentos básicos del paradigma OO. • Lenguaje Java • Programación básica con el lenguaje Java. • No es necesario, pero si conveniente, disponer de conocimientos básicos de HTML y UML (diagramas de clases e interacción) 6 Programa de Teoría • T1 – T2: Introducción a la Programación Distribuida • Sistemas distribuidos (sistemas orientados a mensajes y servicios web) • Plataformas desarrollo: J2EE, .Net • Aplicación empresarial (SI) • Aplicación web (HTTP, HTML, Sesiones, JavaScript, AJAX) • T3: Ajax (Asynchronous Javascript and XML) • Procesamiento asíncrono de peticiones en el lado del cliente: XMLHttpRequest • JSON • Técnicas comunes con Ajax • T4: Servlet • Modelo Petición-Respuesta • Otros: ciclo de vida, sesión, cookie… 7 • T5: JDBC (Java DataBase Connection) • Patrón DAO • T6: Hibernate y JPA (Java Persistence API) • T7: JSP (Java Server Page) • JSP 2.0 y JSTL • Diseño Capa Presentación • Arquitectura MVC (modelo 2) • T8: JSF (Java Server Faces) • Arquitectura, componentes UI, beans, renders, eventos, navegación, conversores, … 8 • T9: RMI (Remote Method Invocation) • Interface Remota, Registro RMI • T10: EJB (Enterprise JavaBeans) • EJB 2.X • EJB 3.0 • Patrones de diseño para el uso de objetos distribuidos: Factoria Homes, Service Locator, Iterator, Value Object, Bussines Delegates 9 Prácticas • 12 sesiones aprox. de laboratorio para elaborar 9 guiones prácticos (NO entregables). • Las sesiones del laboratorio son presenciales pero no obligatorias (no hay entregables) • Trabajo práctico final. • Seguimiento progresivo del trabajo tras la implementación de guiones prácticos. • ? entregas parciales y entrevistas (seguimiento y final) 10 Programa de Prácticas • P1 : AA.Web y entornoo desarrollo • P6 : JSP • P7 : JSF • P2 : HTML y Ajax • P8 : RMI • P3 : Servlet • P9 : EJB • P4 : JDBC • P5 : JPA e Hibernate 11 TEO LAB 21-S T0-Presen, T1-Intro 28-S T2-AAWeb, T3-Ajax 30-S P1-AAWeb+entorno 5-O T3-Ajax, T4-Servlet 7-O P2-Html+Ajax 14-O P3-Servlet 19-O T5-Jdbc 21-O P4-Jdbc 26-O T6-JPA+Hib 28-O P5-JPA+Hib 2-N T6-JPA+Hib, T7-JSP 4-N P5-JPA+Hib 9-N T7-JSP 11-N P6-JSP 16-N T7-JSP, T8-JSF 23-N T8-JSF 25-N P6-JSP, P7-JSF 30-N T8-JSF, T9-RMI 2-D P7-JSF 7-D T9-RMI, T10-EJB 9-D P8-RMI 14-D T10-EJB 16-D P9-EJB 21-D T10-EJB 23-D P9-EJB 12 Seminarios • Se usarán los seminarios para diversos propósitos: • Explicar enunciados de prácticas • Complemento de tecnologías (orientativo): • Seminario de HTML • Seminario de JavaScript • Mostrar herramientas a emplear en laboratorio (orientativo): • • • • • Entorno de desarrollo: Eclipse Eclipse e Hibernate Eclipse y MyFaces Eclipse y JSP Eclipse y EJB 13 Metodología • Seguimiento de la asignatura por AulaVirtual • Comunicación con el profesor mediante las tutorías presenciales o electrónicas • Material de la asignatura en el área de recursos • Avisos/noticias en anuncios • Sesiones de Teoría de 2 horas • Seminarios de 1/2h: Herramientas y explicar enunciados prácticos • Sesiones de Prácticas en el laboratorio: presenciales y no obligatorias • Practica Final • Entrevistas de las entregas: parcial y final. 14 Carga para el alumno • • • • • Clases de teoría: Seminarios: Clases Prácticas: Preparar examen: Proyecto: 26 horas 6 horas 24 horas 50 horas 50 horas • Total: 156 horas 15 Evaluación • Teoría • Examen: prueba escrita de comprensión y desarrollo sobre las tecnologías vistas en clase (y aplicadas tanto en los laboratorios como en la práctica final) : 50% • Práctica Final • Práctica sobre un dominio de problema establecido por el profesor donde el alumno aplicará lo aprendido en las sesiones de laboratorio : 50% • En cada enunciado de cada parte de la práctica final se darán los indicadores precisos sobre la forma de evaluación parcial de cada enunciado • Todas las prácticas parciales son de entrega obligatoria • Los alumnos podrán formar grupos de 2 (o desarrollar la práctica individualmente, según su criterio). La evaluación y el desarrollo en ambos casos es el mismo • Nota de práctica final y teoría se mantiene en las 3 convocatorias de un curso. • Para hacer media, es necesario obtener al menos un 4 en cada una de las partes. 16 Bibliografía recomendada • Programación Java Server con J2EE Edición 1.3., ed.Anaya/Wrox, Subrahmanyam Allamaraju, Cedric Beust y John Davies (ISBN 9788441513587) • Profesional Ajax, ed.Anaya/Wrox, Nicholas C. Zakas, Jeremy McPeak y Joe Fawcett (ISBN 9788441520776) • Murach's Java Servlets and JSP (2nd Edition), Joel Murach and Andrea Steelman (ISBN 9781890774448) • Pro EJB 3: Java Persistence API (Expert's Voice in Java), Mike Keith (ISBN 9781590596456) • Mastering JavaServer Faces, Bill Dudney (ISBN 9780471462071) • Enterprise JavaBeans 3.0 (5th Edition), Richard Monson-Haefel (ISBN 9780596009786) 17