Download Desarrollo de sistemas con tecnología JAVA
Document related concepts
no text concepts found
Transcript
ÁREA: DIPLOMADOS Desarrollo de sistemas con tecnología JAVA PRESENTACIÓN La mayoría de los negocios y empresas requieren sistemas que funcionen en un entorno distribuido de trabajo e independiente de plataforma o sistema operativo y, que además, cuenten con las siguientes características: interacción con bases de datos, conectividad entre aplicaciones, tiempo mínimo de respuesta a los diferentes clientes del sistema y acceso vía Web a los servicios que proporciona el sistema. En el mercado existen muy pocas tecnologías que cubren estas necesidades, tal es el caso de .NET y Java Enterprise Edition (JEE). Una aplicación Web es un sistema informático que los usuarios utilizan accediendo a uno o más servidores Web. Las aplicaciones Web son populares debido a la practicidad del navegador Web como cliente ligero. La capacidad para actualizar y mantener aplicaciones Web sin distribuir e instalar software en miles de potenciales clientes es otra razón de su popularidad. Aplicaciones como los webmails, weblogs, tiendas en línea, sistemas de e-learning o sistemas de inventarios son ejemplos bien conocidos de aplicaciones Web. Este diplomado se enfoca a la plataforma JEE debido a que Java es un lenguaje ampliamente utilizado en diferentes ámbitos del desarrollo de software además de ser una tecnología independiente de la plataforma y que ha demostrado su confiabilidad al ser utilizada en sistemas bancarios, militares e inclusive en la NASA. Adicionalmente se cuenta con herramientas de desarrollo robustas de uso libre con diferentes niveles de productividad que simplifican muchos de los procedimientos necesarios para desarrollar y desplegar aplicaciones de tipo empresarial. JEE está formada por un gran número de tecnologías diferentes y una especificación que indica cómo deben trabajar estas tecnologías conjuntamente. OBJETIVO GENERAL El participante desarrollará e implementará aplicaciones Web en una arquitectura multicapa utilizando la tecnología distribuida de Java. DIRIGIDO A Profesionales de las carreras de informática, ingeniería en computación o afín, interesados en desarrollar e implementar sistemas computacionales con tecnologías de Java. Se requiere haber acreditado o demostrar conocimientos equivalentes a los cursos de Introducción a la programación, Creación de páginas web con XHTML e Introducción al diseño de bases de datos. NIVEL: Especializado DURACIÓN: 240 horas ORGANIZACIÓN: MÓDULO 1 2 3 4 5 6 7 Metodologías de análisis y desarrollo de sistemas orientadas a objetos Programación orientada a objetos con Java Bases de datos con JDBC Java para aplicaciones de escritorio Uso de XML en la creación de interfaces web e intercambio de información. Componentes Java para aplicaciones web Enterprise Java Beans TOTAL REQUISITOS ACADÉMICOS 100% de créditos de la licenciatura. DURACION TOTAL 30 45 30 30 20 45 40 240 Módulo 1. Metodologías de análisis y desarrollo de sistemas orientadas a objetos PRESENTACIÓN Las metodologías de desarrollo de software son un conjunto de procedimientos, técnicas y ayudas a la documentación para el desarrollo de productos de software. Las técnicas indican cómo debe ser realizada una actividad técnica determinada e identificada en la metodología. Las metodologías de desarrollo de software combinan el empleo de modelos o representaciones gráficas junto con el empleo de procedimientos detallados. Este módulo se enfoca a la enseñanza de técnicas y herramientas para el diseño y planeación de software, las cuales contribuyen en una mejora en la calidad del software. PERFIL DE INGRESO Se requiere haber acreditado o demostrar conocimientos equivalentes al curso Introducción a la programación. OBJETIVO El participante aplicará los principios probados, técnicas, lenguajes y herramientas para la creación y mantenimiento del software que satisfaga las necesidades de los usuarios, identificando el proceso de desarrollo o ciclo de vida del software. Además empleará RUP (Proceso Racional Unificado) y UML (Lenguaje Unificado de Modelado), para el análisis, implementación y documentación de sistemas orientados a objetos. TEMARIO 1. METODOLOGÍAS DE DESARROLLO 1.1 Ciclo de vida del desarrollo del software. 1.2 Metodologías de desarrollo de sistemas. 1.2.1 Proceso en cascada. 1.2.2 Proceso iterativo. 1.2.3 Proceso Iconix. 1.2.4 Proceso abierto. 1.2.5 Programación extrema. 2. RATIONAL UNIFIED PROCESS (RUP) 2.1 Objetos. 2.2 Roles. 2.3 Actividades. 2.4 Disciplinas. 2.5 Ciclo de trabajo. 2.6 Iteraciones. 2.7 Fases. 2.8 RUP como un Framework de procesos. 3. UML 3.1 Introducción. 3.2 Características de UML. 3.3 Historia. 4. TIPOS DE DIAGRAMAS EN UML 4.1 Diagramas de caso de uso. 4.2 Diagramas de clase. 4.3 Diagramas de interacción. 4.3.1 Diagramas de secuencia. 4.3.2 Diagramas de colaboración. 4.4 Diagramas de estado. 4.5 Diagramas de actividad. 4.6 Diagramas físicos. 4.6.1 Diagramas de componentes. 4.6.2 Diagramas de despliegue. PERFIL DE EGRESO Los conocimientos adquiridos permitirán al participante utilizar la formalización de desarrollo de software que le permitirán afrontar problemas de administración, calidad, productividad y mantenimiento de software. DURACIÓN 30 horas BIBLIOGRAFÍA KROLL Per, KRUCHTEN. The Rational Unified Process Made Easy: A Practitioner's Guide to Rational Unified. Philippe Editorial Addison-Wesley Professional PILONE Dan, PITMAN. UML 2.0 in a Nutshell. NeilEditorial O'Reilly. 2da Edición, 2005 UML Distilled: A Brief Guide to the Standard Object Modeling Language. Editorial Addison-Wesley Professional. 3ra Edición, 2003 T. ROFF Jason. UML: A Beginner's Guide. Editorial McGraw-Hill Módulo 2. Programación orientada a objetos con Java PRESENTACIÓN Java se creó como parte de un proyecto para el desarrollo de software para aplicaciones de un amplio rango de dispositivos embebidos. La meta era diseñar un lenguaje orientado a objetos, interpretado, robusto, seguro, muti-hilo, dinámico, independiente de plataforma y portable. Hoy día Java es un lenguaje de propósito general orientado a objetos, que sigue encontrando nuevos escenarios de aplicación, tales como, sistemas distribuidos, aplicaciones de escrito, sistemas web, dispositivos móviles, tarjetas inteligentes o dispositivos electrodomésticos. PERFIL DE INGRESO El módulo está dirigido a personas interesadas en aprender el Lenguaje de Programación Java para el desarrollo de aplicaciones de escritorio utilizando el paradigma de programación orientada a objetos. Se requiere haber acreditado o demostrar conocimientos equivalentes al curso Introducción a la programación. OBJETIVO El participante identificará los principales conceptos del paradigma de la programación orientada a objetos y aplicará los conceptos básicos del lenguaje de programación Java realizando aplicaciones de consola, así mismo, abordará el estudio de otras facetas de Java como es el desarrollo de aplicaciones avanzadas con interfaces gráficas o de aplicaciones para Internet. TEMARIO 1. ELEMENTOS BÁSICOS DE LA PROGRAMACIÓN ESTRUCTURADA. 1.1. Tipos de datos primitivos. 1.1.1. Numéricos. 1.1.2. Caracter. 1.1.3. Lógicos o booleanos (falso, verdadero). 1.2. Palabras reservadas. 1.3. Variables. 1.4. Constantes. 1.5. Expresiones. 1.5.1. Operadores y operandos. 1.5.1.1. Operadores unarios. 1.5.1.2. Operadores binarios. 1.5.1.3. Operadores especiales. 1.6. Jerarquía de operadores. 1.6.1. Precedencia de operadores. 1.6.2. Reglas de evaluación de expresiones. 1.7. Operadores aritméticos. 1.8. Operadores relacionales. 1.9. Operadores lógicos o booleanos (and, or, not, xor). 1.10. Comentarios 2. ESTRUCTURAS DE CONTROL. 2.1. Estructuras condicionales. 2.1.1. If. 2.1.2. Switch. 2.2. Estructuras cíclicas. 2.2.1. For. 2.2.2. While. 2.2.3. Do while. 2.2.4. Break y continue. 3. ARREGLOS DE DATOS. 3.1. Arreglos unidimensionales. 3.2. Arreglos bidimensionales. 4. FUNCIONES. 4.1. Concepto de función en programación. 4.2. Llamada o invocación a una función. 4.3. Parámetros. 4.3.1. Parámetros por valor. 4.3.2. Parámetros por referencia. 4.4. Valor de retorno. 5. INTRODUCCIÓN A JAVA 5.1 Historia del lenguaje. 5.2 Panorama actual y tipos de ediciones del lenguaje. 5.3 Elementos que integran Java SE. 5.4 Tipos de programas en Java SE 5.4.1 Aplicaciones de consola 5.4.2 Applets 5.5 Estructura de un programa de tipo aplicación en Java. 6. ELEMENTOS BÁSICOS DEL LENGUAJE 6.1 Comentarios 6.2 Identificadores 6.3 Palabras reservadas. 6.4 Tipos de datos en Java. 6.5 Secuencias de escape de carácter. 6.6 Sentencias y expresiones. 6.7 Operadores. 6.7.1 Jerarquía de operadores. 6.7.2 Operadores aritméticos. 6.7.3 Operadores relacionales. 6.7.4 Operadores booleanos. 6.7.5 Operadores de manipulación de bits. 6.7.6 Conversión de tipo de datos 6.7.7 Promoción y conversión de expresiones 7. CLASES Y OBJETOS 7.1 Estructura de una clase 7.1.1 Sentencia Package. 7.1.2 Sentencia import 7.2 Miembros de una clase. 7.3 Constructores y creación de objetos. 7.3.1 Asignación y organización de la memoria 7.4 Niveles de acceso para una clase. 7.5 Niveles de acceso para un miembro. 7.6 Recursividad. 7.7 Métodos sobrecargados. 8. PAQUETES 8.1 Definición y uso de paquetes. 8.2 Uso del API de programación. 8.3 Paquete java.lang 8.3.1 Clase String. 8.3.2 Clase StringBuffer. 8.3.3 Clase Math. 8.4 Paquete java.util 8.4.1 Arrays. 8.4.2 Creación y uso de arrays. 8.4.3 Arrays multidimensionales. 8.4.4 Clase Arrays. 8.5 Reflexión. 9. HERENCIA Y POLIMORFISMO 9.1 Herencia. 9.2 Uso de la palabra reservada extends 9.3 Uso de la palabra reservada this. 9.4 Uso de la palabra reservado super. 9.5 Creación y destrucción de objetos en una jerarquía de herencia. 9.6 Redefinición de miembros. 9.7 Clases finales. 9.8 Clases abstractas. 9.9 Polimorfismo. 9.10 Interfaces. 9.11 Clases internas. 9.12 Clases Anónimas. 9.13 Aserciones. 10. MANEJO DE EXCEPCIONES 10.1 Modelo del manejo de excepciones. 10.2 Cláusula finally. 10.3 Encadenamiento de excepciones. 10.4 Generación de excepciones propias. 11. FLUJOS 11.1 Paquete java.io. 11.2 Tipos de flujos. 11.3 Flujos de acceso a archivos. 11.4 Clase File. 11.5 Clase FileOutputStream. 11.6 Clase DataOutputStream. 11.7 Clase DataInputStream. PERFIL DE EGRESO Los conocimientos adquiridos permitirán al participante aplicar los elementos y estructura que integran el lenguaje de programación Java y comprender la creación de programas en Java utilizando el paradigma de la programación orientada a objetos. Será capaz de construir aplicaciones de consola. DURACIÓN 45 horas BIBLIOGRAFÍA BARKER Jacquie. Beginning Java Objects: From Concepts To Code. Editorial Apress. 2da edición, 2005 Core Series Sun Microsystems Core Java 2, Volume I Fundamentals. Editorial Prentice Hall 7a edición 2004 HORSTMANN Cay S. Big Java. Editorial John Wiley. & Sons. 2da edición, 2006. HORSTMANN Cay S. Java Concepts. Editorial Wiley. 4ta edición, 2005 HORTON Ivor. Beginning Java 2 JDK 5 Edition. Editorial Wrox. 5a edición, 2004 HUBBARD John R. Schaum's Outline of Programming with Java. Editorial McGraw-Hill 2da edición, 2004 Rogers CADENHEAD, Laura LEMAY. Sams Teach Yourself Java 6 in 21 Days. Editorial Sams. 2007 ISBN-10: 0672329433 Sánchez Allende, Jesús y otros. Programación en Java 2. Serie Schaum. Editorial McGraw-Hill / Interamericana de España S.A. U. 1ra. edición, 2005. SIERRA Katherine, BATES Bert. SCJP Sun Certified Programmer for Java 5 Study Guide. Editorial McGraw-Hill Osborne Media. 1ra edición, 2005 WEISS Mark Allen. Data Structures and Problem Solving Using Java. Editorial Addison Wesley; 3ra edición, 2005 ZUKOWSKI John. Java 6 Platform Revealed. Editorial Apress 2006 Módulo 3. Bases de datos con JDBC PRESENTACIÓN Hoy en día muchas aplicaciones utilizan bases de datos para almacenar y recuperar información de muy variado tipo. La tecnología JDBC permite desarrollar aplicaciones que utilicen bases de datos. JDBC proporciona al desarrollador de bases de datos una capa de abstracción por encima de cualquier gestor de base de datos particular y de su interfaz de programación correspondiente. Mediante esta tecnología, las aplicaciones son independientes de cualquier gestor concreto y su interoperabilidad es mayor. En este módulo se presentan los mecanismos para establecer conexiones con un gestor de base de datos así como el manejo de operaciones en éste. PERFIL DE INGRESO Se requiere haber acreditado o demostrar conocimientos equivalentes a los cursos de Introducción al diseño de bases de datos y de Programación orientada a objetos con Java. OBJETIVO El participante desarrollará aplicaciones que interactúen con un manejador de base de datos utilizando la tecnología Java JDBC. TEMARIO 1. INTRODUCCIÓN A LAS BASES DE DATOS. 1.1. Definiciones y conceptos. 1.2. Necesidad y ventajas de las bases de datos. 2. CONCEPTOS ASOCIADOS A LAS BASES DE DATOS. 2.1. Redundancia. 2.2. Consistencia. 2.3. Integridad. 2.4. Seguridad. 2.5. Independencia lógica de los datos. 2.6. Independencia física de los datos. 3. MODELO RELACIONAL. 3.1. Elementos del modelo relacional. 3.1.1. Relación/Tabla. 3.1.2. Tupla/Renglón. 3.1.3. Atributo/Columna. 3.1.4. Cardinalidad. 3.1.5. Constraints. 3.1.5.1. Integridad de la entidad (PK). 3.1.5.2. Integridad referencial (FK). 3.1.5.3. Manejo de Valores nulos (Null/Not Null). 3.1.5.4. Valores únicos (UNIQUE). 3.1.6. Valores por omisión (DEFAULT). 3.2. Índices. 4. MODELADO LÓGICO DE UNA BASE DE DATOS. 4.1. Normalización. 4.1.1. Primera forma normal. 4.1.2. Segunda forma normal. 5. 6. 7. 8. 4.1.3. Tercera forma normal. 4.2. Diagrama Entidad-Relación. CREACIÓN DE BASES DE DATOS Y TABLAS (DDL). USO DE BASE DE DATOS MYSQL. 6.1. Introducción al lenguaje estructurado de consultas (SQL). 6.2. Tipos de Lenguaje SQL (DDL, DML, DCL). 6.3. Inserción, actualización y eliminación de la información. 6.4. Selección de la información. Integración de bases de datos con el lenguaje de programación Java. 7.1. API JDBC. 7.2. Origen de datos. 7.3. Creación de un programa Java con JDBC. 7.3.1. Creación y manejo de un objeto Connection. 7.3.2. Creación y manejo de un objeto Statement. 7.3.3. Creación y manejo de objetos ResultSet. 7.3.4. Gestión de excepciones y recursos en JDBC. 7.4. Creación y manejo de objetos PreparedStatement.. JDBC AVANZAD O 8.1. Pool de conexiones. 8.2. Procedimientos almacenados. 8.3. Creación y manejo de objetos Callable Statement. 8.4. Manejo de transacciones. 8.4.1. Manejo de transacción en la base de datos. 8.4.2. Manejo de transacción por medio de JDBC. PERFIL DE EGRESO Los conocimientos adquiridos permitirán al participante utilizar el API JDBC para la conectividad entre aplicaciones Java y un amplio rango de manejadores de bases de datos. DURACIÓN 30 horas BIBLIOGRAFÍA Beginning Java Databases: JDBC, SQL, J2EE, EJB, JSP, XML. Editorial Wrox Press JEPSON Brian. Java Database Programming. Editorial Wiley MATTHEWS Mark, COLE Jim, D. GRADECKI. MySQL and Java Developer's Guide. Joseph Editorial Wiley REESE George. Database Programming with JDBC and Java. Editorial O'Reilly. 2da Edición, 2000 REESE George. Java Database Best Practices. Editorial O'Reilly SPERKO Richard. Java Persistence for Relational Databases. Editorial Apress TAHAGHOGHI Seyed M.M., WILLIAMS Hugh. Learning MySQL. Editorila O'Reilly Módulo 4.Java para aplicaciones de escritorio PRESENTACIÓN La interfaz de usuario es la parte del programa que permite a éste interactuar con el usuario. Dichas interfaces pueden adoptar muchas formas, que van desde la simple línea de comandos hasta las interfaces gráficas que proporcionan las aplicaciones más modernas. Java ofrece tecnologías para poder desarrollar aplicaciones potentes, flexibles y vistosas con la posibilidad de creación de interfaces de usuario a través de las JFC. En este módulo también se presentan temas que son el fundamento para el desarrollo con bases de datos y aplicaciones distribuidas. PERFIL DE INGRESO Se requiere haber acreditado o demostrar conocimientos equivalentes a los cursos de Introducción a la programación y Programación orientada a objetos con Java. OBJETIVO El participante reconocerá los conceptos de programación Multithread, programación en redes, programación genérica, el framework de colecciones Java y creará Interfaces Graficas de Usuario utilizando Swing. TEMARIO 1. INTERFACES GRÁFICAS CON JAVA 1.1 Introducción al JFC y Swing 1.2 Componentes 1.2.1 Etiquetas 1.2.2 Botones 1.2.3 Campos y áreas de texto 1.2.4 Cuadros de lista 1.2.5 Cuadros de diálogo 1.2.6 Menús 1.3 Contenedores 1.3.1 Frames y Paneles 1.3.2 Frames internos 1.3.3 Administradores de diseño y distribución (Layouts) 1.3.4 Controles 1.4 Eventos 1.4.1 Introducción al manejo de eventos 1.4.2 Escuchadores de eventos soportados por componentes Swing 1.4.3 Implementación de escuchadores de eventos 1.4.4 API Listener 1.5 Empaquetado de aplicaciones 2. PROGRAMACIÓN GENÉRICA 2.1 Introducción. 2.2 Declarando clases e interfaces genéricas 2.3 Métodos y constructores genéricos. 2.4 Tipos comodín 2.5 Tipos en bruto y borrado de tipo 2.6 Código genérico y máquina virtual. 2.7 Restricciones y limitaciones. 2.8 Reglas de la herencia para tipos genéricos. 3. COLECCIONES 3.1 Colecciones del Java Collection. 3.1.1 Interfaz Collection. 3.1.2 Interfaz Set. 3.1.3 Interfaz List. 3.1.4 Interfaz Queue. 3.1.5 Interfaz Map 3.2 Clase Enumeration. 3.3 Clase Iterator. 3.4 Algoritmos polimórficos de la clase Collections. 3.4.1 Algoritmo sort. 3.4.2 Algoritmo shuffle. 3.4.3 Algoritmos reverse, fill, copy, max y min. 3.4.4 Algoritmo bynarySearch. 4. PROGRAMACIÓN CONCURRENTE 4.1 La clase Thread 4.2 La interface Runnable 4.3 Creado de tareas e hilos 4.4 Ciclo de vida de un hilo 4.5 Métodos y constructores de la clase Thread 4.6 Pools de hilos 4.7 Terminando hilos 4.8 GUI y el hilo Event Dispatcher 4.9 Condiciones de carrera 4.10Sincronización 4.10.1 Bloqueos, Interface Lock y la clase ReentrantLock 4.10.2 Métodos look y unlook 4.10.3 Evitando estancamientos 4.10.4 Objetos condicionales 4.10.5 Métodos sincronizados y objeto bloqueados 4.10.6 Las interfaces Lock y Condition 4.10.7 La palabra reservada Synchronized 5. REDES 5.1 Conceptos básicos de redes 5.2 Protocolo TCP/IP 5.3 Protocolo UDP 5.4 Puertos 5.5 Dirección IP 5.6 Aplicaciones cliente/servidor 5.7 Interacción entre cliente/servidor mediante conexiones de socket de flujo. 5.7.1 El Socket 5.7.2 Un sencillo cliente/servidor en Java 5.7.3 Serialización de objetos 5.7.4 Implementación de un servidor multithread 5.7.5 Enviar y recibir bytes 5.8 Interacción entre cliente/servidor sin conexión mediante datagramas. PERFIL DE EGRESO Los conocimientos adquiridos permitirán al participante construir interfaces de usuario a través del uso de las JFC y conocerá las clases relacionadas con el trabajo de hilos, redes y el framework de colecciones Java. DURACIÓN 30 horas BIBLIOGRAFÍA BAILEY Duane . Java Structures: Data Structures in Java for the Principled Programmer Editorial McGraw-Hill Science/Engineering/Math. 2da edición, 2002 COLLINS William Data Structures and the Java Collections Framework . Editorial McGraw-Hill Science/Engineering/Math 2da edición, 2004 ELLIOTT James, ECKSTEIN Robert, LOY Marc, WOOD David, COLE Brian Java Swing. Editorial O'Reilly. 2da edición, 2002 GOLDSTEIN Mitch Hardcore JFC: Conquering the Swing Architecture Editorial Cambridge University Press GUOJIE Jackwind Li Professional Java Native Interfaces with SWT/JFace Editorial Wrox WIENER Richard, J. PINSON Lewis. Fundamentals of OOP and Data Structures in Java. Editorial Cambridge University Press Módulo 5. Uso de XML en la creación de interfaces web e intercambio de información PRESENTACIÓN Actualmente XML es utilizado en diferentes tecnologías Web y en arquitecturas de integración de aplicaciones SOA (Service Oriented Architecture) basadas en Web Services. XML debe ser entendido no sólo como lenguaje en sí mismo, sino como el conjunto de tecnologías que giran a su alrededor. XML provee la capacidad de transformar los datos en información, ello es posible a través de un simple programa que capture los datos incluidos en un documento y los transforme en información para posteriormente ser utilizada. Este módulo está enfocado a analizar documentos XML utilizando diferentes APIs de Java, así como el conocer los procedimientos y pasos a seguir para la transformación de documentos XML. PERFIL DE INGRESO Se requiere haber acreditado o demostrar conocimientos equivalentes a los cursos de Creación de páginas web con XHTML y Programación orientada a objetos con Java. OBJETIVO El participante conocerá las especificaciones de XML y elementos de los APIs que proporciona Java para XML. TEMARIO 1. ORIGEN DEL XML 1.1 Definición de XML. 1.2 Estructuración y sintaxis 1.3 Estructuración de contenidos XML 2. FUNDAMENTOS DE XML 2.1 Creación de un archivo XML. 2.2 Creación de archivos DTD (Document Type Definition). 2.3 XML Schema 3. CONSTRUYENDO DOCUMENTOS VÁLIDOS 3.1 Validación 4. DESPLIEGUE DE INFORMACIÓN 4.1 CSS 4.2 XLS 4.3 XLST 4.4 XPATH 5. Modelos DOM 5.1 Nodos 5.2 Elementos DOM 5.3 Trabajando con nodos 6. Java y XML 6.1 JDOM 6.2 JAXP 6.3 JAX – RPC PERFIL DE EGRESO Los conocimientos adquiridos permitirán al participante utilizar el lenguaje XML, etiquetas, instrucciones de procesamiento y las diferentes tecnologías que giran a su alrededor para el manejo de datos y procesamiento de información utilizando el lenguaje de programación Java y las distintas APIs del lenguaje que permiten trabajar con XML. DURACIÓN 20 horas BIBLIOGRAFÍA AHMED Kal , ANCHA Sudhir, CIOROIANU Andrei, COUSINS Jay, CROSBIE Jeremy. Professional Java XML. Editorial Wrox HAROLD, Elliotte Rusty Processing XML with Java: A Guide to SAX, DOM, JDOM, JAXP, and TrAX Editorial Addison-Wesley Professional. 1ra edición, 2002 HAROLD Elliotte Rusty. XML 1.1 Bible. Editorial Wiley. 3ra Edición, 2004 HUNTER David, RAFTER Jeff. Beginning XML Editorial Wrox 4ta edición, 2007 MCLAUGHLIN Brett, EDELSON. Java and XML. Justin Editorial O'Reilly. 3ra Edición, 2006 RAY Erik. Learning XML, Second Edition. Editorial O'Reilly. 2da edición, 2003 Módulo 6. Componentes Java para aplicaciones web PRESENTACIÓN El desarrollo de aplicaciones web dinámicas son hoy día sumamente demandadas. Java ofrece las tecnologías Servlets y JSP (Java Server Pages) como una extensión del lenguaje para la web. Los Servlets son programas Java que se ejecutan en un servidor web y son muy populares para la construcción de aplicaciones interactivas. Los Servlets y JSPs ofrecen los mismos beneficios del lenguaje Java como la portabilidad, la reusabilidad y el manejo de excepciones. PERFIL DE INGRESO Se requiere haber acreditado o demostrar conocimientos equivalentes al curso de Programación orientada a objetos con Java y Bases de Datos con JDBC. OBJETIVO El participante examinará los componentes de JEE más frecuentemente utilizadas en la programación de aplicaciones web como los SERVLETs, JSPs, etiquetas JSTL, servidores de aplicaciones, seguridad declarativa, gestión de sesiones, acceso a bases de datos mediante JDBC y el framework Struts para producir aplicaciones en entornos web. TEMARIO 1. DISEÑANDO APLICACIONES JEE 1.1 Diseño en capas. 1.2 Modelo de objetos. 1.3 Modelo de datos. 2. INTRODUCCIÓN AL PROTOCOLO HTTP 2.1 Definición de HTTP. 2.2 Principales cabeceras de HTTP. 2.3 Métodos HTTP. 3. XHTML. 3.1 Estructura básica de un documento XHTML. 3.2 Etiquetas básicas. 3.3 Uso de ligas. 3.4 Manejo de imágenes. 3.5 Uso de tablas para el despliegue de la información. 3.6 Utilización de formularios para interactuar con el usuario. 4. CONFIGURACIÓN DEL SERVIDOR TOMCAT 4.1 Creación de un contexto. 4.2 Despliegue de un contexto. 5. INTRODUCCIÓN A LOS SERVLETS 5.1 Definición de Servlet. 5.2 Contenedor web. 5.3 Ciclo de vida del servlet. 5.3.1 Método init(). 5.3.2 Método service(). 5.3.3 Método destroy(). 5.3.4 Método doGet(). 5.3.5 Método doPost(). 5.4 Métodos de la interfaz HttpServletRequest. 6. ELEMENTOS DE JSP 6.1 Conceptos de JSP. 6.2 Ciclo de vida de las JSPs. 6.3 Sintaxis y semántica de JSP. 6.4 Expresiones y scriplets. 6.5 Declaraciones. 6.6 Directivas de página. 6.7 Objetos implícitos en las JSP. 6.7.1 Request. 6.7.2 Response. 6.7.3 pageContext. 6.7.4 Session. 6.7.5 Application. 6.7.6 Out. 6.7.7 Config 6.7.8 Page. 6.7.9 Exception. 7. JAVABEANS 7.1 Descripción de los JavaBeans. 7.2 Uso de los JavaBeans en JSP. 7.3 Propiedades y manejo de los beans 8. JSP Y LOS FORMULARIOS HTML 8.1 Creación de formularios HTML. 8.2 Lectura de parámetros en una petición. 8.3 Manejo de envió de información (manejo de errores, filtrado de caracteres). 9. ACCESO A BASE DE DATOS CON JDBC 9.1 Interacción con base de datos en aplicaciones de servidor web. 9.2 Pool de conexiones. 9.3 Transacciones. 10. JSP y XML 10.1Simple API for XML (SAX). 11. SESIONES 11.1Creación de sesiones. 11.2Guardar y recuperar objetos a partir de sesiones. 11.3Destrucción de sesiones. 12. ARQUITECTURA DEL MODELO-VISTA-CONTROLADOR 12.1Introducción a MVC. 12.2Ventajas. 12.3Introducción a los patrones de diseño. 12.4Definición de framework. 12.5Struts Framework. 12.5.1 Introducción (Modelo 1, Aplicación del MVC, Beneficios de Struts). 12.5.2 El Modelo 2 y Struts. 12.5.3 Action Forms. 12.5.4 Validación de Información. 12.5.5 Manejo de Mensajes e Internacionalización. 12.5.6 Aplicaciones Seguras con Struts. PERFIL DE EGRESO Los conocimientos adquiridos permitirán al participante utilizar las tecnologías Web Java para construir aplicaciones Web interactivas con bases de datos a través del uso de distintas APIs Java, así como implementar y desplegar aplicaciones empresariales, basadas en el modelo multicapa de desarrollo JEE. DURACIÓN 45 horas BIBLIOGRAFÍA AHMED Khawar Zaman, E. UMRYSH. Developing Enterprise Java Applications with J2EE and UML. Cary Addison-Wesley Professional BERGSTEN Hans. JavaServer Pages. Editorial O'Reilly. 3ra edición, 2003 BROGDEN William B. Java Developer's Guide to Servlets and JSP. Editorial Sybex Inc. CAVANESS Chuck. Programming Jakarta Struts. Editorial O'Reilly. 2da edición, 2004 CHOPRA Vivek, BAKORE Amit, EAVES Jon. Professional Apache Tomcat 5. Editorial Wrox GRAHAM Steve, DAVIS Doug, SIMEONOV. Building Web Services with Java: Making Sense of XML, SOAP, WSDL, and UDDI. Simeon EDITORIAL SAMS;. 2da edición, 2004 HALL Marty, BROWN Larry, CHAIKINYaakov. Core Servlets and Javaserver Pages: Core Technologies. Editorial Prentice Hall. 2da edición, 2007 HARBOURNE-THOMAS Andrew, DALTON Sam, BROWN Simon. Professional Java Servlets 2.3 Editorial Peer Information //wrox HUNTER Jason, Java Servlet Programming. Editorial O'Reilly .2da edición, 2001 HUSTED Ted, DUMOULIN Cedric, FRANCISCUS George. Struts in Action: Building Web Applications with the Leading Java Framework. Editorial Manning Publications ZHUK Jeff . Integration-Ready Architecture and Design: Software Engineering with XML, Java, .NET, Wireless, Speech, and Knowledge Technologies. Editorial Cambridge University Press,2004 Módulo 7. Enterprise Java Beans PRESENTACIÓN Dentro de la especificación JEE, la lógica de negocio que resuelve o reúne las necesidades de un caso particular como actividades bancarias, ventas o finanzas es manejada por los Java Enterprise Beans (EJB), los cuales son componentes que se ejecutan en un servidor JEE, concretamente en el contenedor EJB del mismo, y que contienen las reglas de negocio. Este módulo va enfocado a conocer los diferentes tipos de EJBs que existen en la especificación JEE, así como el uso de tecnologías alternas para el manejo de la lógica del negocio y la persistencia de datos. PERFIL DE INGRESO Se requiere que el participante tenga conocimientos equivalentes a los cursos Programación orientada a objetos con Java, Desarrollo de aplicaciones web en Java, Introducción al diseño de bases de datos y Análisis y diseño de sistemas. OBJETIVO El participante construirá aplicaciones robustas, reutilizables y distribuidas integrando una aplicación EJB con diversas APIs Java, asimismo identificará los conceptos fundamentales y tipos de EJBs (Enterprise Java Beans). TEMARIO 1. INTRODUCCIÓN A LA TECNOLOGÍA EJB 1.1 Descripción de la arquitectura Enterprise Java Bean. 1.2 Contenedor EJB. 1.3 Tipos de Enterprise Java Beans. 1.3.1 Session Beans. 1.3.2 Entity Beans. 1.3.3 Message-Driven Beans. 2. INSTALACIÓN Y CONFIGURACIÓN DE JBOSS 2.1 Introducción a JBOSS. 2.2 Instalación del servidor de aplicaciones JBOSS. 2.3 Configuración del servidor de aplicaciones. 3. DESARROLLO DE SESSION BEANS 3.1 Stateless Session Bean. 3.2 Ciclo de vida de un Stateless Session Bean. 3.3 Caso de estudio de un Stateless Session Bean. 3.4 Stateful Session Bean. 3.5 Ciclo de vida de un Stateful Session Bean. 3.6 Caso de estudio de un Stateful Session Bean. 4. JAVA PERSISTENCE API (JPA) 4.1 Introducción 4.2 Entity Beans 4.2.1 Fields and properties 4.2.2 Primary Key 4.2.3 Relationship 4.2.4 Entity Manager 4.3 Unit persistence 4.4 Caso de estudio 5. DESARROLLO DE MESSAGE-DRIVEN BEANS 5.1 JMS y Message-Driven Beans. 5.2 Ciclo de vida de un Message-Driven Bean. 5.3 Caso de estudio. 6. CONSTRUCCIÓN DE UN WEB SERVICES CON JAX-WS 6.1 Introducción. 6.2 Web Services y JAX-WS. 6.3 Creación de un servicio web y un cliente con JAX-WS. 7. TECNOLOGÍAS COMPLEMENTARIAS 7.1 Java Mail API. 7.2 Creación de servicios REST 7.3 Arquitecturas JEE 7.3.1 Framework Spring MVC 7.3.2 Separación lógica PERFIL DE EGRESO Los conocimientos adquiridos permitirán al participante desarrollar aplicaciones distribuidas sobre la plataforma Java a través de patrones de diseño y/o frameworks de desarrollo. DURACIÓN 40 horas BIBLIOGRAFÍA ALUR Deepak, MALKS Dan, CRUPI John. Core J2EE Patterns: Best Practices and Design Strategies. Editorial Prentice Hall. 2da edición, 2003 BAUER Christian, KING Gavin. Hibernate in Action. Editorial Manning Publications BELL John T., LAMBROS James, NG Stan. J2EE Open Source Toolkit: Building an Enterprise Platform with Open Source Tools. Editorial Wiley, 2003 BROEMMER Darren. J2EE Best Practices: Java Design Patterns, Automation, and Performance. Editorial Wiley BURKE Bill, MONSON-HAEFEL Richard. Enterprise JavaBeans 3.0 Editorial O'Reilly. 5ta edición, 2006 JOHNSON Rod, HOELLER Juergen, ARENDSEN Alef. Professional Java Development with the Spring Framework. Editorial Wrox KEITH Mike, SCHINCARIOL Merrick. Pro EJB 3: Java Persistence API. Editorial Apress MARRS Tom, DAVIS Scott. JBoss at Work: A Practical Guide. Editorial O'Reilly MONSON-HAEFEL Professional NEWCOMER Eric. Understanding Web Services: XML, WSDL, SOAP, and UDDI. Editorial Addison-Wesley Professional POLGAR Jana, BRAM Robert Mark, POLGAR Anton. Building and Managing EnterpriseWide Portals. Editorial Idea Group Publishing WALLS Craig BREIDENBACH Ryan. Spring in Action. Editorial Manning Publications. 2da edición, 2007 Richard. J2EE Web Services . Editorial Addison-Wesley METODOLOGÍA Para el desarrollo de este Diplomado, se han considerado criterios pedagógicos teóricoprácticos que promuevan la participación, interacción, el aprendizaje en grupo, la comunicación y el manejo directo de las herramientas de cómputo. Se le asignará una cuenta de usuario en un servidor, esta cuenta tiene acceso a los servicios de Shell de Linux y alojamiento de páginas web, que podrá utilizar durante el periodo del diplomado como herramienta de apoyo. Esta cuenta tendrá una vigencia desde el inicio del diplomado hasta dos semanas después de haber concluido el diplomado para la realización de su proyecto y prácticas. Los módulos que lo integran fueron planteados de acuerdo al grado de complejidad de los temas y, en consecuencia, de las propias herramientas de software. Se contará con los servidores de aplicaciones adecuados para cada módulo. El participante tendrá a su cargo el desarrollo de un proyecto individual mismo que irá complementando a lo largo del diplomado y el cual será evaluado como parte de la calificación en cada módulo. REQUISITOS DE ACREDITACIÓN 1) Se otorgará diploma sólo a quien acredite todos y cada uno de los módulos que integran el Diplomado. 2) Para acreditar cada módulo es necesario tener una calificación mínima de 8 (ocho) y tener el 80% de asistencia. 3) Para la evaluación de cada uno de los módulos se tomarán en cuenta los siguientes aspectos: Participación 10% Prácticas 30% Evaluación final 30% Avance de proyecto personal 30% NOTA: a partir del módulo 2, el participante deberá entregar el avance de su proyecto como es requisito de acreditación para cada módulo. PROYECTO INDIVIDUAL: La elaboración del proyecto individual del diplomado, se inicia desde el módulo 1, donde el participante empleará los conocimientos adquiridos (POO, XML, bases de datos, diseño de sistemas, etc.) en el desarrollo de una aplicación Web cliente servidor, utilizando las tecnologías JSP y Servlets. Haciendo uso del framework Struts para aplicar el patrón MVC. Al finalizar el módulo 7, el participante empleará todos los conocimientos adquiridos durante el diplomado a través de la extensión en el desarrollo de su aplicación multicapa que involucre las tecnologías J2EE: JSP, Servlets, EJBs. De tal forma que pueda aplicar estas tecnologías en cada una de las etapas que involucra el desarrollo de un sistema empresarial, así como el uso de patrones de Diseño J2EE y/o un framework de desarrollo. CONOCIMIENTOS PREVIOS EN CÓMPUTO Conocimientos equivalentes al curso Introducción a la programación. Conocimientos equivalentes al curso Introducción al diseño de bases de datos. Conocimientos equivalentes al curso Creación de páginas web con XHTML. RESPONSABLES ACADÉMICOS: Ing. Nidia Cendejas Cervantes Ing. Sergio A. Alva Arguinzoniz Febrero 2015