domingo, 21 de julio de 2013

Java EE 7 Español

Comenzare con la traducción de las secciones del tutorial de oracle sobre Java EE 7 !!!!, donde cada semana tratare de ir subiendo algún lo mas que pueda, si alguien traduce alguna seccion que aun no este en este blog que la mande por mail para subirla xP. espero sea de mucha utilidad y a estudiar!!!!!.

link del tutorial a traducir: http://docs.oracle.com/javaee/7/tutorial/doc/home.htm

Saludos...

Resources Creation

Un recurso es un objeto de un programa que proporciona conexiones a los sistemas tales como servidores de base de datos y sistemas de mensajería. Los componentes de Java EE pueden acceder a una gran variedad de recursos, incluyendo base de datos, sesiones de correo, los objetos Java Message Service y direcciones URL. La plataforma Java EE 7 proporciona mecanismos que permiten acceder a todos estos recursos de una manera similar. Este capítulo examina varios tipos de recursos y explica como crearlos.

Aquí se tratan los siguientes temas:

  • Resources and JNDI Naming
     
  • DataSources Objects and Connection Pools
     
  • Creating Resources Administratively

Resources and JNDI Naming

En una aplicación distribuida, los componentes necesitan tener acceso a otros componentes y recursos, como bases de datos. Por ejemplo, un servlet podría invocar métodos remotos de un enterprise beans que recupera información de una base de datos. En la plataforma Java EE, la interfaz de Java Naming and Directory (JNDI), servicio de nombres, permite a los componentes localizar a otros componentes y recursos.

Un recurso es un objeto de un programa que proporciona conexiones a los sistemas, tales como base de datos y sistemas de mensajería. (Un recurso de conectividad de base de datos de Java se refiere a veces como una fuente de datos.) Cada objeto de recurso es identificado con un nombre único, llamado nombre JNDI. Por ejemplo, el nombre JNDI del recurso JDBC preconfigurado para la base de datos Java DB que se entrega con el servidor GlassFish es "java:comp/DefaultDataSource".

Un administrador crea recursos en un espacio de nombres JNDI. En el servidor GlassFish, puede utilizar la consola de administración o el comando asadmin para crear recursos. Las aplicaciones utilizan anotaciones para inyectar los recursos. Si una aplicación usa la inyección de recursos, el servidor GlassFish invoca la API JNDI, la aplicación no esta obligada a hacerlo. Sin embargo, también es posible para una aplicación localizar recursos haciendo llamadas directamente a la API JNDI.

Un objeto de recurso y su nombre JNDI están unidos por la denominación y el servicio de directorio. Para crear un nuevo recurso, un nuevo nombre/objeto de enlace se introduce en el espacio de nombres JNDI. Se inyectan recursos mediante la anotación "@Resource" en una aplicación.

Puede utilizar un descriptor de (deployment)despliegue para anular la asignación de recursos que se especifique en una anotación. El uso de un descriptor de despliegue le permite cambiar de una aplicación mediante un nuevo empaquetamiento que más que por tanto volver a compilar los archivos de origen y reenvasado. Sin embargo, para la mayoría de las aplicaciones, un descriptor de despliegue no es necesario.


DataSource Objects and Connection Pools

Para almacenar, organizar y recuperar datos, la mayoría de las aplicaciones utilizan una base de datos relacional. Los componentes Java EE 7 pueden acceder a base de datos relacionales a través de la API JDBC. Para obtener información sobre esta API consulte: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136101.html

En la API JDBC, bases de datos son accedidas mediante el uso de objetos DataSource. Un DataSource tiene un conjunto de propiedades que identifican y describen el origen de datos del mundo real que representa. Estas propiedades incluyen información tal como la ubicación del servidor de base de datos, el nombre de la base de datos, el protocolo de red a utilizar para comunicarse con el servidor, y así sucesivamente. En el servidor GlassFish, una fuente de datos es llamado un recurso JDBC.

Las aplicaciones acceden a una fuente de datos mediante una conexión, y un objeto DataSource puede ser pensado como una fábrica para las conexiones a una fuente de datos en particular, que la instancia de DataSource representa. En una implementación básica DataSource llama al metodo getConnection que devuelve un objeto de conexión que es una conexión física con la fuente de datos.

Un objeto DataSource puede ser registrado en un servicio de nombres JNDI. Si es así, una aplicación puede utilizar el API JNDI para acceder a ese objeto DataSource, que luego se puede utilizar para conectar con el origen de datos que representa. El objeto de conexión que el metodos getConnection retorna es un identificador de un objeto PooledConnection en lugar de ser una conexión física. Una aplicación utiliza el objeto de conexión de la misma manera que utiliza una conexión. La agrupación de conexiones no tiene efecto en el código de aplicación, excepto que una conexión agrupada, al igual que todas las conexiones, siempre debe estar cerrada de forma explícita. Cuando una aplicación cierra una conexión que es agrupada, la conexión es devuelta al grupo de conexiones reutilizables. La próxima vez que se llame a getConnection un identificador de una de estas conexiones agrupadas debería ser retornado si es que esta disponible. Debido que la agrupación de conexiones evita la creación de una nueva conexión física cada vez que así lo solicita, las aplicaciones pueden correr mucho más rápido.

Una agrupación de conexiones JDBC es un grupo de conexiones reutilizables para una base de datos particular. Como la creación de cada nueva conexión física es mucho tiempo, el servidor gestiona un conjunto de conexiones disponibles para mejorar el rendimiento. Cuando se solicita una conexión, una aplicación obtiene una desde el grupo de conexiones, cuando una aplicación cierra una conexión, la conexión es retornada al grupo (pool).

Las aplicaciones que utilizan la API de persistencia especifican el objeto DataSource que están utilizando en el elemento "jta-data-source" del archvo "persistence.xml".

<jta-data-source>jdbc/MyOrderDB</jta-data-source>

Este suele ser la única referencia a un objeto JDBC para una unidad de persistencia. El código de la aplicación no se refiere a ningún objeto JDBC.


Creating Resources Administratively

Antes de implementar o correr aplicaciones, puedes necesitar crear recursos para ellas. Una aplicación puede incluir un archivo "glassfish-resources.xml" que se puede utilizar para definir los recursos para las aplicaciones y otros. Puede usar el comando asadmin, especificando como argumento un archivo llamado glasfish-resources.xml, para crear los recursos administrativamente, como se muestra:

asadmin create-resources glassfish-resources.xml

El archivo glassfish-resources.xml se puede crear en cualquier proyecto usando Netbeans IDE, o a mano. Algunos de los ejemplos JMS utilizan este enfoque para la creación de recursos. Un archivo para crear los recursos necesarios para ejemplo JMS simple producer que puede ser encontrado en el directorio jms/simple/producer/src/main/setup.

También puede utilizar el comando asadmin create-jms-resource para crear los recursos necesarios para este ejemplo. Cuando estés listo para usar los recursos, Debería utilizar el comando list-jms-resources para mostrar sus nombres, y el comando asadmin delete-jms-resource para eliminarlos, independientemente de la forma en que ha creado los recursos.