SCBCD: Contenedores EJB 3.0 y API's



Imagen: Cerca del mar, Paul Gaugin

Aqui va el primer post de los referente a la certificación SCBCD 5.0. Todos los post esán asociados a un objetivo del examen... así que deberían leerlos completos porque es muy probable que los encuentren en el día D. ADVERTENCIA: Ciertas partes han sido tomadas de la especificación (por cierto, deberían leerla también). Asimismo, he colocado los nombres en inglés de ciertos términos por si las moscas (Algunas cosas suenan mejor en inglés xD). En fin...ahí vamos:

Un contenedor EJB es una aplicación que nos va a brindar una serie de servicios que van a consumir los EJB's que nosotros construyamos. Por tanto, nuestros EJB no se pueden ejecutar si no es dentro de estos contenedores EJB. Los más populares, bueno... los que yo conozco son JBoss, Glassfish y el OAS de Oracle.


Una de las tareas principales del contenedor es proveer a nuestras instancias EJB de acceso a ciertas API's en tiempo de ejecución. Dichas API's (algunas ya son viejos conocidos) son:


  • JDBC : El contenedor EJB 3.0 debe incluir la extensión JDBC 3.0; pero no las interfaces de pool de conexiones. Estas interfaces deben ser usadas para integrar el driver JDBC con el servidor de aplicaciones, pero no deben ser usadas directamente por la instancias EJB
  • RMI - IIOP: Las interfaces remotas de negocio (remote business interface, por si no las ubican) y las interfaces remote home y remote son consideradas interfaces remotas por RMI. El contenedor debe asegurar la semántica del pase de argumentos de acuerdo a RMI - IIOP (Los objetos no remotos deben ser pasados por valor)
    • Las interfaces de negocio locales (local business interface, otra vez) así como las interfaces local y local/home son Interfaces Java Locales. Los EJB's que usan estas interfaces (tanto el que invoca al método como el que es invocado) están ejecutándonse en la misma JVM

  • JNDI: El contenedor debe proveer un espacio de nombres (namespace) JNDI a las instancias EJB. Dicho namespace es accessible cuando se invoca al constructor sin argumentos de InitialContext. Los siguientes objetos deben estar disponibles ese namespace: Interfaces de Negocio de EJB's, Entity Manager's y Entity Manager Factory's, Interfaces de Web Service de los EJB's, Interfaces Home, Objetos UserTransaction, objetos TimeService, objetos EJBContext,etc
  • API EJB 3.0: Incluidas las anotaciones y las interfaces de javax.persistence
  • JTA 1.1: Debe proporcinarnos la interfaz UserTransaction a través de la interfaz EJBCOntext, para los EJB's con manejo de transacciones de Bean (bean managed transaction)
  • JMS 1.1
  • JavaMail 1.4 (sólo para enviar correos)
  • JAF 1.1 (Si alguein sabe para que es esto... me avisa)
  • JAXP 1.2, JAXR 1.0, JAX-RPC 1.1, JAX-WS 2.0, JAXB 2.0, SAAJ 1.3.....Y muchas siglas más, la mayoría orientadas al trabajo con Web Services
Ojalá no haya que memorizar todo esto para el exámen. Son muchas siglas y muchos números!! Para el próximo post veremos un poco de sintaxis EJB.



Publicar un comentario