EX297

Retirado - Red Hat Certified Specialist in Persistence Exam

Descripción general

Descripción del examen

Nota: Este examen y su acreditación ya no están disponibles.

En el examen Red Hat Certified Specialist in Persistence Exam, se evalúa el nivel de preparación de los candidatos para asumir responsabilidades reales en cuanto a la creación y el mantenimiento de las aplicaciones Java™ que utilizan Java Persistence API (JPA) con JBoss® Hibernate®.

Los especialistas que poseen la certificación del examen Red Hat Certified Specialist in Persistence Exam pueden realizar tareas reales asociadas con el uso de Java™ Persistence API (JPA) con JBoss Hibernate. JPA es un marco de lenguaje de programación Java para gestionar datos relacionales. Hibernate es un servicio de consulta y permanencia relacional de objetos de alto rendimiento que implementa JPA.

Familiarícese con las herramientas, el entorno y los requisitos de un examen Red Hat JBoss Certified Developer.

Público al que va dirigido el examen

Red Hat Certified Specialist in Persistence está diseñado para los siguientes especialistas:

  • Arquitectos y desarrolladores de aplicaciones Java experimentados.
  • Desarrolladores de componentes de negocios y bases de datos.

Requisitos previos para el examen

  • Estar familiarizados con el funcionamiento del entorno de Red Hat Enterprise Linux
  • Conocer los objetivos del examen Red Hat Certified Specialist in Persistence Exam (EX297)

Red Hat recomienda que los candidatos obtengan la certificación Red Hat Certified JBoss Developer (RHCJD) antes de presentarse al examen, aunque no es obligatorio.

Objetivos

Elementos de estudio para el examen

Los siguientes objetivos resaltan las áreas temáticas que pueden aparecer en el examen, para ayudarlo a prepararse. Red Hat se reserva el derecho de añadir, modificar y eliminar cualquier objetivo del examen. Estos cambios se publicarán con antelación.

Tareas que deberán realizar durante el examen

Los candidatos que rindan el examen Red Hat Certified Specialist in Persistence Exam deberán poder realizar las tareas a continuación utilizando JPA con Hibernate. Para facilitarle el estudio, hemos incluido una lista con material de referencia recomendado para estas actividades.

Asignación de una sola tabla u objeto
  • Comprender el comportamiento de los generadores de ID, lo que incluye cómo y cuándo se genera el valor
  • Saber cómo asignar una clave principal, lo cual incluye lo siguiente:
    • El uso de claves generadas
    • La asignación de claves empresariales simples
    • La asignación de claves compuestas
  • Conocer la identidad del objeto y la equivalencia empresarial
  • Configurar la información específica de las bases de datos, como el nombre de la tabla, el nombre de la columna, el ancho de la columna
    y los atributos de la columna (valor nulo, único, tipo, etc.)
  • Convertir un objeto de Java actual en un objeto permanente con JPA/Hibernate
  • Asignar tipos de datos JPA básicos a sus tipos de bases de datos correspondientes
  • Dada una determinada tabla de base de datos actual, crear un nuevo objeto permanente de Java para asignar esa tabla
  • Saber cómo y cuándo utilizar la carga diferida frente a la diligente
  • Conocer y utilizar las estrategias de asignación óptimas para las colecciones y los tipos de valores
  • Gestionar propiedades y comportamientos específicos para el modelo de Java/objeto en un objeto permanente Esto incluye lo siguiente:
    • Serialización
    • Propiedades temporales
    • Propiedades generadas y calculadas
    • Propiedades inmutables
    • Tipos de valores
    • Propiedades codependientes (es decir, cuando los valores válidos de una propiedad dependen del valor
      de otra)
Asignación de relaciones entre objetos con JPA/Hibernate
  • Comprender cómo asignar relaciones, entre otras, las siguientes:
    • Relaciones de valores (por ejemplo, el objeto detalles de tipo has-a)
    • Relaciones entre principal/secundario
    • Relaciones de uno a uno (tanto unidireccionales como bidireccionales)
    • Relaciones de muchos a uno y de uno a muchos (tanto unidireccionales como bidireccionales)
    • Relaciones de muchos a muchos (tanto unidireccionales como bidireccionales)
  • Comprender los comportamientos de asignación predeterminados, entre otros, los siguientes:
    • Nombres de claves ajenas
    • Nombres de tablas de asociación
  • Saber usar claves ajenas y unir tablas al crear relaciones
  • Comprender cómo asignar una clave principal compuesta en función de la relación
  • Comprender las colecciones de JPA/Hibernate (conjuntos, listas de asignaciones y recopilaciones de objetos) y cómo se asignan a las relaciones
    entre objetos y tablas
  • Comprender los efectos que tienen en el rendimiento las diferentes colecciones
  • Comprender cómo y cuándo utilizar la carga diferida frente a la diligente, lo que incluye los efectos tanto en el rendimiento
    como en el código de ambas
  • Crear un gráfico de objetos permanentes de Java que coincida con la base de datos, según un conjunto determinado
    de relaciones y tablas actuales
  • Asignar un modelo de objetos actual, lo que incluye varias asociaciones, a un almacén de permanencia
  • Determinar las estrategias de carga óptimas para un determinado proceso empresarial
Asignación de relaciones jerárquicas entre objetos con JPA/Hibernate
  • Saber representar distintas jerarquías de objetos utilizando JPA/Hibernate
  • Convertir una jerarquía de objetos Java actual en objetos permanentes utilizando JPA/Hibernate
  • Representar un conjunto actual de relaciones de tabla como una jerarquía de objetos (p. ej.: la caja de ahorro,
    la tarjeta de crédito y los préstamos)
  • Comprender qué son las consultas y las asociaciones polimórficas
  • Comprender las ventajas y las limitaciones de las distintas estrategias de herencia
  • Analizar y determinar las representaciones de bases de datos óptimas para distintas jerarquías de objetos
Comprender el comportamiento operacional (ACID)
  • Adquirir y usar un contexto de operación bajo lo siguiente:
    • Java EE/CMT
    • Java EE/BMT
    • Java SE con las API de JPA
  • Comprender cómo se vincula el contexto de permanencia a la operación en Java EE
  • Comprender la propagación del contexto de operación con EJB3
  • Comprender las consecuencias que implica revertir una operación en el nivel de contexto de permanencia
  • Comprender los riesgos de la simultaneidad de las operaciones
  • Evaluar las ventajas y las desventajas de la pérdida/corrupción de datos en relación con el rendimiento
Recuperación de objetos permanentes
  • Conocer las estrategias de carga de JPA/Hibernate:
    • Carga diferida
    • Carga con subselección
    • Carga por lotes
  • Comprender y usar las opciones de consulta avanzadas:
    • HQL/JPA QL
    • API de criterios
    • Consultas nativas (SQL)
  • Utilizar la característica de extracción de datos diligente del tiempo de ejecución
  • Utilizar parámetros designados
  • Anticipar y evitar la excepción LazyInitializationException
  • Analizar y mejorar el rendimiento de JPA/Hibernate
  • Comprender y usar las características ampliadas de bloqueo optimista de JPA y bloqueo pesimista de Hibernate
Manipulación de objetos permanentes
  • Comprender cuáles son los estados de entidades:
    • temporal
    • permanente
    • dependiente
    • independiente
    • eliminado
  • Comprender cómo cambiar el estado de una entidad o gráfico de entidad con las API de Java
  • Comprender el ciclo de vida del contexto de permanencia y su impacto sobre las entidades gestionadas
  • Aplicar las características de procesamiento por lotes de JPA/Hibernate:
    • Patrones de uso de API
    • Consultas DML
  • Determinar y aplicar la implementación óptima y la configuración en cascada para manipular un gráfico de objetos
  • Evaluar en qué momento usar el procesamiento por lotes

Qué necesita saber

Documentación y capacitación

Durante el examen, solo podrá acceder a la documentación oficial de JBoss Enterprise Application Platform para la versión que se está evaluando, y a cualquier archivo de muestra o documentación adicional incluidos en el producto. No le prohibiremos usar nada de lo que se incluye normalmente.

Tenga en cuenta que no podrá acceder a jboss.org ni a hibernate.org. Aunque estos wikis son recursos útiles e incluyen información que puede ser relevante, su formato no resulta apropiado para el examen. El objetivo es evaluar al candidato, no a las personas que leen y actualizan los wikis.

No está permitido traer al examen copias impresas ni documentación electrónica, como notas, libros o cualquier otro material. El acceso a Internet estará estrictamente controlado. Recuerde estas restricciones cuando esté estudiando.

Entorno

Durante el examen, trabajará en un sistema Red Hat® Enterprise Linux® 5.4, por lo que le resultará útil contar con experiencia previa en el uso de Linux o UNIX. Sin embargo, no se requiere una amplia experiencia en Linux, ya que el propósito del examen es poner a prueba sus habilidades de JPA con Hibernate, no sus habilidades específicas en el uso de sistemas operativos. Tendrá a su disposición un entorno completo de escritorio y una lista de comandos básicos que podrá utilizar como referencia, además de las páginas man y toda la documentación que se incluye con Red Hat Enterprise Linux.

Fedora le ofrece una alternativa gratuita para que ponga en práctica sus habilidades con Linux. Existe una versión en CD en vivo que le permite trabajar en Fedora sin necesidad de instalarlo en su computadora. Si bien el entorno no es exactamente igual al de Red Hat Enterprise Linux, se acerca lo suficiente al nivel de familiarización que se requiere.

Formato del examen

El examen Red Hat Certified Specialist in Persistence Exam se basa totalmente en el rendimiento, por lo que los candidatos tendrán que realizar una serie de tareas para demostrar sus conocimientos y habilidades, el lugar de repetir datos de forma mecánica. En la mayoría de los exámenes de certificación de TI se realizan preguntas para las que hay que elegir entre las respuestas A, B, C o D o con un enunciado incluso menos popular: elija todas las respuestas que correspondan. En el examen Red Hat Certified Specialist in Persistence Exam no encontrará este tipo de preguntas. De hecho, no verá ninguna pregunta. En lugar de eso, se encontrará con un entorno real en el que deberá realizar una lista de tareas rutinarias. Por ejemplo, podemos pedirle que cree y mantenga una asociación permanente en lugar de hacerle una serie de preguntas sobre las anotaciones de asignación de JPA. Por esta razón, se recomienda a los candidatos que sean escépticos con cualquier información que encuentren en Internet. Este documento es la única fuente de información fiable sobre el contenido del examen.

El examen Red Hat Certified Specialist in Persistence Exam dura cuatro horas. Antes de comenzar se necesitarán unos minutos para comprobar la identificación y recopilar información.

Entorno del examen

Herramientas del desarrollador

Además del entorno de escritorio, le proporcionaremos una copia instalada y configurada de JBoss Developer Studio 3 (JBDS). Este no es un examen de JBDS y no se espera que conozca o use este entorno para completar las tareas del examen. Sin embargo, JBDS es una herramienta excelente para desarrollar y mantener aplicaciones de JPA/Hibernate. Por ello, tener cierta experiencia y habilidades en JBDS desde luego le ayudarán a la hora de realizar el examen. Si no tiene acceso a una copia compatible de JBDS, puede descargar una versión gratuita. Si no está registrado en Red Hat, necesitará crear una cuenta gratuita. Si no desea registrarse en Red Hat para obtener una versión gratuita, puede practicar para el examen con la distribución estándar de Eclipse y el complemento JBoss Tools 4.

Los proyectos que se incluyen en el examen se crearon con Maven. Si no desea utilizar JBDS, puede usar un editor de texto estándar (como gedit o vi), la línea de comandos y Maven. Tenga en cuenta que el examen es un entorno cerrado y que Maven se ejecutará en modo sin conexión. No puede usar ningún repositorio ni plugin de Maven que no se haya importado antes al entorno local.

Directorio de trabajo

Al comenzar el examen, el espacio de trabajo de JBDS predeterminado tendrá uno o más directorios de proyecto que deberá usar para el examen. No es obligatorio utilizar JBDS para su desarrollo, pero tiene que usar el directorio del espacio de trabajo predeterminado y los directorios de proyecto proporcionados para todas las tareas. Una vez más, todo el código y los recursos deben desarrollarse en la estructura de los directorios que se han proporcionado, y ser coherentes con ella.

Normas de codificación

Se trata de un examen práctico donde tendrá que escribir código para realizar las tareas. Las normas de codificación dependen de cada empresa. Como ocurriría en un caso real, deberá seguir las normas de codificación locales. A continuación, encontrará información sobre las normas de codificación que se utilizarán durante el examen, lo cual puede resultarle útil para prepararse. Esta información también se le proporcionará durante el examen. Para poder llevarlo a cabo, lo mejor será ponerse en el papel de un desarrollador de JPA/Hibernate al que acaban de contratar para realizar un proyecto. Por desgracia, el desarrollador inicial tuvo que dejar el proyecto sin terminar y ya no está disponible. Usted tendrá que continuar el código donde él lo dejó y completar el máximo posible en el tiempo disponible.

El código está bastante bien documentado y hay muchas tareas pendientes en el código que le indicarán lo que debe hacer. Sin embargo, tenga en cuenta que ni la herramienta Javadoc ni las tareas pendientes no son suficientes; es necesario leer las descripciones de cada tarea y comprender lo que se requiere antes de actuar sobre ella. Si cree que hay un conflicto entre el texto de la tarea, los diagramas UML/PDM y el Javadoc o las tareas pendientes, prevalece siempre la descripción de la tarea.

A continuación, se muestran algunos puntos importantes que debe considerar mientras trabaja:

  • No importa el formato del código. No tendrá repercusión en la evaluación del trabajo que realice si utiliza pestañas o espacios ni cómo coloque las llaves.
  • Puede asignar las clases utilizando archivos XML, anotaciones de campos o anotaciones de propiedades; da igual el elemento que use. El código actual usa una cantidad reducida de anotaciones de nivel de campo, pero puede cambiar fácilmente al estilo de asignación que prefiera.
  • Muchas de las clases están organizadas de una forma poco común; los campos y los métodos relacionados están agrupados. Esto es muy poco habitual y no se recomienda. Se hace para que le resulte más fácil trabajar en un solo elemento sin tener que buscar los campos y los métodos relacionados hacia delante y hacia atrás en el código. Si prefiere utilizar una estructura de código más normal, puede ordenar los miembros de la clase. Sugerencia: en JBDS, las marcas azules de tareas pendientes que aparecen a la derecha de la ventana del editor y la lista de propiedades de la vista detallada (Outline) le permitirán navegar con rapidez por estas clases.
  • A diferencia de los casos reales, los comentarios y los mensajes de excepción no tienen importancia. El examen se corrige automáticamente, por lo que estos se ignoran.
  • Lo importante es la calidad del código y seguir las prácticas recomendadas. Debe seguirlas en todo momento y asumir que las prácticas deficientes o insuficientes le restarán puntos. Por ejemplo, una práctica recomendada de Java es no exponer nunca públicamente a los miembros del campo, por lo que debe usar siempre los métodos estándares de obtención y establecimiento de JavaBeans para las propiedades del objeto.
  • El proyecto del examen se ha diseñado junto con otras aplicaciones en diferentes departamentos. A no ser que se especifique en la descripción de la tarea o en una tarea pendiente del código, no debe cambiar la firma de ningún método actual. La única excepción a esta regla es que puede y debe especificar aún más la firma (utilizando una subclase o un genérico específico) cuando sea necesario. Por ejemplo, cuando lo crea conveniente, debe reemplazar Collection{cke_protected}{C}%3C!%2D%2D%3F%2D%2D%3E por List.
  • Puede agregar campos, propiedades y métodos según se requiera.
  • Como el proyecto se centra en las entidades permanentes y no ha introducido datos en la capa del controlador o servicio, se espera que cree el código para las entidades permanentes utilizando la programación defensiva. Es decir, los métodos de la entidad deben tratar de evitar que la lógica empresarial acabe con la coherencia de los objetos. Por ejemplo, un método de obtención de una propiedad que acepta valores NULL debe emitir una excepción NullPointerException si se transfiere un valor nulo.
  • A menos que se indique lo contrario, todas las entidades deben usar las claves principales de la base de datos que el motor de permanencia genera automáticamente.
  • Si un método necesita emitir una excepción debido a un problema interno, debe usar siempre RuntimeException; no cree una excepción específica para la empresa. Por ejemplo, puede utilizar IllegalArgumentException cuando un argumento no sea válido para un método. Puede usar IllegalStateException si se trata de un problema de inconsistencia en el estado del modelo del objeto o del almacén de permanencia. Además, por supuesto, siempre podrá utilizar NullPointerException cuando sea necesario. A menos que se indique expresamente lo contrario, no use las características de permanencia transitiva de JPA para propagar los cambios automáticamente a las entidades asociadas en un gráfico de objeto. La experiencia nos ha demostrado que muchos desarrolladores de nivel empresarial se confunden con esta característica, la cual puede provocar graves problemas de rendimiento y fiabilidad si no se usa adecuadamente. Una última advertencia: No podremos evaluar su trabajo si no se compila o no se ejecuta correctamente. En concreto, una asociación permanente incorrecta puede provocar que todas las acciones de permanencia fallen. Es preferible insertar comentarios en una asociación compleja y no arriesgarse a interferir con otras asociaciones que funcionen bien. Los proyectos de prueba incluyen una amplia selección de pruebas JUnit, por lo que le recomendamos que ejecute una serie completa de pruebas tras finalizar una tarea. Sin embargo, tenga en cuenta que las pruebas JUnit que se incluyen no forman parte del examen y que el hecho de que su código pase las pruebas no significa necesariamente que obtendrá una buena calificación.

Resultados y notificación

Los resultados oficiales de los exámenes proceden exclusivamente de la Central de Certificación Red Hat. Red Hat no autoriza a los examinadores o partners de formación a comunicar los resultados a los candidatos directamente. En general, los resultados de los exámenes se comunican en un plazo de tres días laborables, según el calendario de EE. UU.

Los resultados del examen se organizan en puntuaciones por sección. Red Hat no comunica ni la puntuación obtenida en cada módulo, ni ninguna otra información adicional que se haya solicitado.