Temario
 
  • Introducción y conceptos básicos de EJB3
    • Lo nuevo en EJB 3
      • Empleo de POJOs: código no invasivo
      • Anotaciones en lugar de descriptores
      • Simplificación del modelo de programación
      • Inyección de dependencias
      • Nuevo API simplificado de persistencia
    • Definición de Enterprise Java Bean
    • Entornos y Uso de un EJB
      • EJBs como componentes
      • EJBs como framework de capa de negocio
      • EJBs en arquitecturas multicapa
    • Beneficios de un EJB ¿donde emplearlos?
    • El contenedor de EJBs
      • Servidores de aplicaciones empresariales JEE
      • Servicios que ofrece un contenedor EJB
    • Tipos de EJBs
      • Session Beans
        • Características de un session Bean
        • ¿Cuándo emplear un session bean?
      • Programando un Session Bean en EJB 3
        • Incorporando anotaciones
        • Mezclando anotaciones con descriptor xml
        • Incorporando inyeccion de dependencias
      • Message Driven Beans (MDBs)
        • Características de un MDB
        • ¿Cuándo emplear un MDB?
      • Programando un MDB en EJB 3
        • Envio de mensajes a un MDB
    • Entities y JPA
      • Entities
      • EntityManager
      • JPA
      • Persistiendo datos con JPA
      • Uso de EntityManager
  • Implementación de la Lógica de negocio con Session Beans
    • Servicios de un Session Bean
    • Tipos de Session Beans
      • Stateless Session Beans
      • Stateful Session Bean
    • Acceso a EJBs a través de interfaces
      • Clientes locales
      • Clientes remotos
      • Webservices como clientes
      • Consideraciones acerca del paso de argumentos a los métodos de un EJB
    • Elementos de un Session Bean
      • Interface de negocio
      • La clase que implementa al EJB
    • Modelo y reglas de programación de un sesión bean
    • Ciclo de vida de un Session Bean
      • Ciclo de vida para un Stateless Session Bean
      • Ciclo de vida para un Stateful Session Bean
      • @PostConstruct
      • @PreDestroy
      • @PrePassivate
      • @PostActivate
    • Stateless session beans
      • Uso de @Stateless
      • Construcción de las interfaces de negocio
        • Interface local @Local
        • Interface remota @Remote
        • Exponer un session bean como Web Service @WebService
    • Stateful session beans
      • Uso de @Stateful
      • Reglas de programacion adicionales
        • Uso de @Remote
      • Pasivando y activando EJBs: @PrePassivate, @PostActivate
      • Eliminación de un stateful bean
    • Invocación de sesión Beans: clientes
      • Inyección de dependencias empleando @EJB
      • Consideraciones de desempeño para stateful session beans
      • Alternativas a los stateful sesión beans
    • Manejo de excepciones
  • Mensajes e implementación de Message Driven Beans
    • Conceptos básicos de mensajería
    • Message-oriented middleware
    • Conceptos básicos de JMS (Java Message Sevice) API
      • Arquitectura de JMS
        • JMS Producer
        • JMS provider
        • JMS clients
        • Messages
      • Modelos de mensajería
        • Punto a punto
        • Publish-subscribe
      • Consumo de mensajes
      • Modelo de programación de JMS
        • Objetos Administrados
        • JMS Connection Factories
        • JMS Destinations
        • JMS Connections
        • JMS sessions
        • JMS Message Producers
        • JMS Message Consumers
        • JMS Message Listeners
    • Beneficios u utilidad de un MDB
    • Modelo (reglas) de programación de un MDB
    • El ciclo de vida de un MDB
    • Programación de un consumidor de mensajes empleando un MDB
      • Uso de @MessageDriven
      • Envió de mensajes desde MDBs
    • Mejores prácticas en el uso de MDBs
  • Conceptos avanzados en EJB3
    • El contenedor y la generación de Proxies
    • El contexto de un EJB: EJBContext
    • Acceso a recursos
      • Empleando Dependency Injection
      • Empleando JNDI
        • Uso de @Resource
        • Uso de @PersistenceContext
        • Uso de @PersistenceUnit
    • Inyección de recursos JMS
    • Acceso a atributos de ambiente
    • Interceptores en EJB 3
      • Conceptos básicos de AOP
      • Interceptores en EJB3 @Interceptors
    • EJB timer service
    • Transacciones
      • Propiedades ACID
      • Niveles de aislamiento
      • Administración de transacciones
        • Transaction manager
        • Transacciones distribuidas
        • Two Phace Commit
        • Protocolo XA
      • Administración de transacciones en EJBs
        • Container Manager Transactions
        • Uso de @TransactionManagement
        • Interaccion con otras transacciones: @TransactionAttribute
          • Atributos de interaccion:
            • REQUIRED
            • REQUIRES_NEW
            • SUPPORTS
            • MANDATORY
            • NOT_SUPPORTED
            • NEVER
      • Provocando rollbacks con setRollbackOnly
      • Manejo de excepciones dentro de transacciones
        • Excepciones de sistema
        • Excepciones de aplicación @ApplicationException
    • Seguridad en JEE, EJB 3
      • Autenticación y Autorización
      • Usuarios, grupos y roles
      • Uso de @DeclareRoles, @RollesAllowed, @PermitAll, @DenyAll, @RunAs
      • Seguridad programática: isCallerInRole, getCallerPrincipal
    • Spring y EJB 3
      • Beneficios del framwerk de Spring
      • El principio de “Inversion of control
      • El principio de “separation of concerns”
      • Empleo de JPA con Spring
      • Combinar EJB3 y Spring
  • Java Persistence API en EJB3
    • Introducción al diseño orientado a modelos de dominio
      • Objetos
      • Relaciones entre objetos
      • Multiplicidad
      • Opcionalidad
    • Implementación de objetos de dominio con JPA: @Entity
    • Persistiendo entidades
      • @Id, @IdClass,@EmbeddedId,@Transient, @Embeddable
    • Relaciones unidireccionales y bidireccionales entre entidades
      • @OneToOne
      • @OneToMany
      • @ManyToOne
      • @ManyToMany
    • Mapeo del modelo de dominio en la base de datos
      • Mapeo de Entidades
        • Mapeo de la tabla @Table, @Target
        • Mapeando columnas @Column, @Enumerated, @Lob, @Basic
        • Mapeo de tipos temporales @Temporal
      • Mapeo a múltiples tablas @SecundaryTable
      • Generación de llaves primarias
        • Identity Columns
        • Secuencias
      • Mapeo de objetos marcados como embeddable
      • Mapeo de relaciones entre entidades
        • One to One @JoinColumn, @PrimaryKeyJoinColumn
        • One to Many
        • Many to Many
      • Mapeo de Herencia @Inheritance
      • Estrategias de mapeo
        • Single – Table strategy : @DiscriminatorColumn
        • Joined-tables strategy
        • Table-per-class strategy
    • Manipulación de Entidades con EntityManager
      • Definición de EntityManager
      • La interface EntityManager
      • Ciclo de vida de una entidad
      • Obtención de Instancias EntityManager
        • Cointainer- Managed EntityManager
        • Application-managed EntityManager
      • Principales operaciones con EntityManager
        • Persistencia de entidades con Persist
        • Obtención de entidades por ID
        • Entity fetch modes
        • Actualización de entidades: merge
        • Eliminar entidades
  • JPA Query API: Java Persistence Query Language JPQL
    • El objetivo fe JPQL
    • Elementos de un Query en JPQL
      • Named Queries
      • Creación y ejecución de queries
      • La interface Query
      • Manejo de Parametros
      • Obtención de entidades
    • Java Persistence Query Language (JPQL)
      • Diferencias con SQL
      • Tipos de Sentencias
      • La clausula FROM
      • Expresiones de condición y operadores
      • JPQL functions
      • La clausula SELECT
      • Queries polimórficos
      • Agregaciones
      • Ordenamiento
      • Subqueries
      • Joins
    • Ejecución de queries nativos
      • Queries dinamicos don SQL nativo