Ir al inicio - Autentia

Objetivos

Todo lo que un Administrador de Sistemas debería saber sobre la plataforma de ejecución Java y sus componentes.

  • Comprender el funcionamiento básico de las principales aplicaciones Java, desde el punto de vista de de su explotación en entornos de ejecución.
  • Conocer la diferencia entre Java como lenguaje y como plataforma de ejecución, los distintos componentes de la Máquina Virtual de Java de cara al rendimiento y disponibilidad del sistema.
  • Sin necesidad de entrar a programar, entenderán qué es la plataforma de ejecución Java y cómo optimizarla para obtener el mejor rendimiento de las aplicaciones.
  • Entender los principales problemas que encontramos trabajando con dichas aplicaciones para afrontarlos con mayor resolución/conocimiento.

¿A quién va dirigido?

Administradores de sistemas que trabajen con entornos Java y deseen conocer el funcionamiento de esta plataforma.
NO ES UN CURSO DE PROGRAMACIÓN, pero los desarrolladores pueden conocer Java desde el punto de vista de un administrador de sistemas: cómo se despliegan sus aplicaciones, las monitorizan y mantienen.

Contenidos

1. Introducción a Java

  • ¿Qué es Java?
  • Lenguaje y Plataforma: JRE y JDK
  • Java Virtual Machine (JVM)
  • Distribuciones
  • La evolución de Java
  • Empaquetado
  • Classloaders
  • Tipos de aplicaciones Java

2. Java en Aplicaciones Web

  • Protocolo HTTP. Revisión.
  • Conceptos de páginas dinámicas
  • Contenedores de aplicaciones. Introducción
  • Descriptor de despliegue: web.xml
  • Servlets. Introducción a los Servlets Genéricos
  • Servlets HTTP. Ejecución. Request y Response
  • Servlets. Get VS Post
  • Servlets. Ciclo de Vida
  • Servlets. Despliegue y Configuración
  • Servlets. Ventajas y Desventajas
  • JSP. Introducción
  • JSP. Sintáxis y Contenido Básico
  • JSP. Etiquetas y librerías de Etiquetas
  • JSP. Variables implícitas y Directivas
  • MVC. Introducción
  • MVC. Modelo + Vista + Controlador
  • MVC. Contextos
  • MVC. Frameworks más importantes
  • Filtros
  • Listeners

3. Despliegue en servidores

  • Tipos de Contenedores de Aplicaciones
  • Tomcat. Introducción
  • Tomcat. Instalacion, Variables de Entorno y Classpath
  • Tomcat en Cluster con Apache
  • Tomcat. Problemas Comunes I
  • Tomcat. Problemas Comunes II
  • Otros Contenedores. Introducción
  • Otros Contenedores. Eclipse Jetty
  • Otros Contenedores. Apache TomEE
  • Otros Contenedores. JBoss Wildfly
  • Otros Contenedores. Oracle Weblogic Server
  • Otros Contenedores. IBM WebSphere Application Server (WAS)
  • Otros Servidores. Resumen de Características
  • Despliegue de Múltiples Aplicaciones
  • Concepto de sesión
  • Sesión. Clúster de servidores y sesión: Mecanismos y Gestión en Tomcat
  • Sesión. Configuración en Tomcat
  • Nuevos sistemas de despliegue: Software Containers. Docker
  • Certificados y el Keytool de Java
  • Ajustes de Configuración: File Descriptors del Sistema Operativo
  • Ajustes de Configuración: Conexiones en Apache: módulos MPM
  • Ajustes de Configuración: Conexiones en Apache: KeepAlive
  • Ajustes de Configuración: Impacto de Bases de Datos en la carga de la Arquitectura.
  • Ajustes de Configuración: Tiempos de TimeOut
  • Ejemplo: Infraestructura de Apache y Tomcat en DMZ

4. Acceso a Datos

  • Especificación JDBC. Introducción
  • Especificación JDBC. Driver
  • Especificación JDBC. Tipos de Driver
  • Especificación JDBC. Composición de la API
  • Datasource
  • Demo 1: Uso de un DataSource en Tomcat
  • Demo 2: Uso de un DataSource en WildFly
  • Pool de Conexiones
  • Demo 3: Configuración del Pool de conexiones en Tomcat
  • Gestión de Transacciones – JTA: Introducción a las Transacciones
  • Gestión de Transacciones – JTA. Transacciones Locales VS Distribuidas
  • Gestión de Transacciones – JTA. JTA API
  • Gestión de Transacciones – JTA. Two-phase commit
  • Gestión de Transacciones – JTA. Aislamiento y Concurrencia
  • JNDI y definición de recursos a nivel global. Introducción
  • JNDI y definición de recursos a nivel global. Servicio de Directorio en Java
  • Demo 4: JNDI y definición de recursos a nivel global

5. Gestión de memoria en Java

  • La gestión de memoria en Java. Introducción
  • La gestión de memoria en Java. Introducción
  • Estructura de memoria. Distribución de la memoria
  • Estructura de memoria. Permgen y Metaspaces
  • Estructura de memoria. Espacios de Generaciones
  • Estructura de memoria. Configuración
  • Garbage Collector. Introducción
  • Garbage Collector. Memoria y Tipos
  • Garbage Collector. Algoritmos e Implementaciones
  • Garbage Collector. Configuración
  • Monitorización e Impacto en el Rendimiento. Introducción a la Monitorización
  • Monitorización e Impacto en el Rendimiento. Rendimiento
  • Monitorización e Impacto en el Rendimiento. Trazas del Garbage Collector
  • Monitorización e Impacto en el Rendimiento. Herramientas de Análisis de Memoria
  • Demo 1: Análisis del Garbage Collector con HPJMeter

6. Monitorización y rendimiento

  • JMX. Introducción
  • JMX. Estructura
  • JMX. Monitorización Remota
  • JMX. Monitorización JVM y Consolas
  • Parámetros de configuración de la JVM
  • Demo 1: Plan de pruebas de carga con JMeter
  • Demo 2: Uso de AppDynamics
  • Demo 3: Uso de New Relic

7. Logging

  • Introducción a las trazas en Java
  • Introducción a las trazas en Java. Requisitos de un buen sistema de trazas
  • Frameworks e Interfaces. Introducción
  • Frameworks e Interfaces. Frameworks en Java
  • Frameworks e Interfaces. Log4J 2.x
  • Frameworks e Interfaces. Interfaces de Logging
  • Frameworks e Interfaces. Recomendación de Arquitectura de Logging
  • Configuración en Caliente. Introducción
  • Configuración en Caliente. Modos de implementación
  • Errores comunes en el Log. Excepciones y Mensajes

¿Quieres más información?

HABLEMOS