Formación : Java, programación avanzada

Java, programación avanzada




El objetivo principal es presentar una visión general de las principales bibliotecas de gestión de hilos, comunicaciones de red, administración y supervisión de aplicaciones. El curso también presenta los principios arquitectónicos subyacentes a la construcción compositiva de aplicaciones.


ABIERTA
IN-COMPANY
A MEDIDA

Formación en tus instalaciones, en nuestro centro o a distancia

Ref. JAP
  5d - 35h00
Duración, formato, fechas y lugar: ¡Tú decides, nosotros nos encargamos de organizarlo!

Descargar en formato pdf

Compartir este curso por correo electrónico




El objetivo principal es presentar una visión general de las principales bibliotecas de gestión de hilos, comunicaciones de red, administración y supervisión de aplicaciones. El curso también presenta los principios arquitectónicos subyacentes a la construcción compositiva de aplicaciones.


Objetivos pedagógicos
Una vez finalizada la formación, el participante podrá:
Implementar la programación concurrente basada en hilos
Implementar diferentes técnicas de comunicación (Socket, RMI, JMS)
Administración de una aplicación Java mediante JMX, supervisión de la JVM
Aplicar la programación reflexiva y basada en anotaciones

Público afectado
Desarrolladores, ingenieros, jefes de proyecto cercanos al desarrollo.

Requisitos previos
Buen conocimiento del lenguaje Java. Se requiere experiencia en programación Java.

Modalidades prácticas
Trabajo práctico
Este curso ilustra los principios expuestos construyendo gradualmente una aplicación en Java.

Programa de la formación

1
Programación concurrente

  • Los conceptos de la programación multihilo: el modelo de actividad de Java (Runnable y Thread).
  • Creación/destrucción de hilos. Programación de hilos.
  • Sincronización de hilos. Métodos e instrucciones de bloqueo (sincronizados). Monitores.
  • Algunos problemas multihilo: interbloqueo (caracterización, evitación, prevención, detección), inanición.
  • Extensiones de modelo introducidas en Java.5 (Callable<T>, Future<T>, ExecutorService. Nuevas colecciones.
  • El modelo Fork/Join de Java 7. Extensiones de Java 8 (CompletableFuture).
  • Diversas herramientas de gestión de la competencia: bloqueos compartidos/exclusivos, semáforos, barreras cíclicas.
Trabajo práctico
Creación de una aplicación multihilo con restricciones de concurrencia.

2
Comunicación por socket

  • Recordatorio de los principales conceptos de red.
  • Comunicación en modo conectado.
  • El modelo cliente/servidor. Servidor secuencial frente a servidor concurrente. Uso de la serialización.
  • Programación en modo offline. El modelo Peer to Peer.
Trabajo práctico
Programación del caso práctico en modo cliente-servidor (secuencial y concurrente).

3
Comunicación por invocación remota de métodos : RMI

  • Los principios generales de los ORB (Object Request Brokers).
  • El modelo RMI (conceptos, interfaces de clases básicas).
  • El servicio de nombres.
  • El proceso de desarrollo de clientes y servidores.
  • Restricciones de seguridad y carga de clases.
Trabajo práctico
Programación del caso práctico mediante RMI.

4
Comunicación basada en mensajes: JMS

  • Los principios generales de la comunicación de mensajes.
  • El modelo básico (conceptos, interfaces y clases JMS).
  • Los diferentes tipos de mensaje.
  • Comunicación punto a punto.
  • Comunicación en modo publicar/suscribir.
Trabajo práctico
Programación del caso práctico mediante JMS.

5
Administración de aplicaciones : JMX

  • El modelo JMX (Java Management eXtension): conceptos, interfaces y clases correspondientes.
  • MBeans y MBeanServers.
  • Configuración de una capa de administración.
  • La consola de administración (JConsole).
  • Comunicación mediante adaptadores y conectores.
Trabajo práctico
Implementación de una capa de administración-supervisión para el caso de estudio.

6
Programación reflexiva

  • Objetivos y principios.
  • Descubrimiento dinámico de información relativa a una clase u objeto.
  • Instanciación e invocación dinámicas.
  • Reflexividad y anotaciones en Java 5.
Trabajo práctico
Programación del caso práctico en modo cliente-servidor (secuencial y concurrente).

7
Una visión general de las extensiones de Java 5 a...

  • Tipos: genéricos, enumeraciones, autoboxing/autounboxing, registros.
  • Expresiones lambda e interfaces funcionales.
  • Flujos Java 8.
  • Módulos Java 9.


Opiniones de los clientes
4,4 / 5
Las opiniones de los clientes proceden de las evaluaciones al final de la formación. La nota se calcula a partir de todas las evaluaciones con una antigüedad inferior a 12 meses. Solo se muestran las que tienen un comentario textual..


Fechas y lugares
Selecciona tu ubicación u opta por la clase remota y luego elige tu fecha.
Clase a distancia