UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Desarrollo de Software con Java Enterprise Edition Antonio J. Vélez Q. Universidad del Valle – Sede Palmira UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Contenido ● ● ● ● Definición de Enterprise Bean Cuando usar Enterprise Beans Tipos de Enterprise Beans Desarrollo de Aplicaciones con Java Enterprise Edition UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Enterprise Bean ● ● ● ● Con componentes Java EE que implementan la tecnología Enterprise JavaBeans. Son componentes que se ejecutan en el contenedor EJB. El contenedor provee servicios de bajo nivel como transacciones y securidad (grandes beneficios) Un Enterprise Bean es un componente del lado del servidor que encapsula la lógica de una aplicación. UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Cuándo usar Enterprise Bean ● Usted puede considerar el uso de entreprise beans si la aplicación tienen uno de los siguientes requerimientos : – Debe ser escalable. Para acomodarse a un número creciente de usuarios, usted puede distribuir los componentes de la aplicación en múltiples máquinas (la ubicación es transparente para los clietes) – Transacciones que aseguren la integridad de los datos. Las transacciones es el mecanismo que administra el acceso concurrente (simultáneo) a objetos compartidos. – La aplicación debe permitir variedad de clientes. UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Tipos de Enterprise Beans ● Session Bean – Representa un cliente al interior del Application Server. – El cliente invoca los métodos de session bean, el cual realiza el trabajo para el cliente, librando a éste de tareas complejas. – Es similar a una sesión interactiva – no es compartido, tiene solo un cliente. – Al igual que una sesión, el session bean es NO persistente. Cuando el cliente termina, la sesión también. – Stateful Session Beans / Stateless Session Beans UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Tipo de Enterprise Bean ● Message-Driven – Permite a las aplicaciones Java EE procesar mensajes de forma asíncrona. – Funciona de forma similar a un manejador de eventos, excepto que recibe mensajes JMS en lugar de eventos. – Pueden procesar mensajes JMS u otro tipo de mensajes (de sistemas que no usan tenclogía Java EE) UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Session Bean ● ● El contenido de un Enterprise Bean incluye : – Business Interfaces: Define los métodos que pueden ser invocados por el cliente y que deben ser implementados por la enterprise bean class. – Enterprise bean class: Implementa los métodos definidos en la business interface (se pueden adicionar otros métodos). – Helper classes: clases necesarias para la enterprise bean class, como excepciones y clases utilizarías. Todos estos archivos son empaquetados en un archivo EJB JAR (extensión .ear) UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Session Bean ● ● Un session beans puede tener más de una interfaz. Cuando se diseña el enterprise beans, se tomar la desición sobre el tipo de cliente que puede acceder: remote, local, or web service. UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Session Bean – Clientes Remotos ● ● ● El cliente se puede estar ejecutando en una máquina JVM diferente a la máquina JVM en donde se ejecuta el cliente. El cliente puede ser un componente web, una aplicación cliente u otro enterprise bean. La ubicación del enterprise bean es transparente. Su ubicación se determina a través de su nombre. UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Session Bean – Clientes Remotos Para declarar el enterprise bean para acceso remoto se puede hacer de las siguientes formas ● – Agregar a la business interface la anotación @Remote – Agregar a la business class la anotación @Remote acompañada de la interfaz @Remote public interface InterfaceName { ... } @Remote(InterfaceName.class) public class BeanName implements InterfaceName { ... } UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Session Beans – Clientes Locales ● ● ● ● Es ejecutado en la misma máquina JVM en donde se ejecuta el enterprise bean. Puede ser una aplicación web u otro enterprise bean. Para el cliente local, las ubicación del enterprise bean no es transparente (es la misma JVM) Si no se establece el tipo de cliente a través de las anotaciones @Local o @Remote, se definirá por defecto como un cliente local. UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Session Bean – Clientes Locales Para declarar el enterprise bean para acceso remoto se puede hacer de las siguientes formas ● – Agregar a la business interface la anotación @Local – Agregar a la business class la anotación @Local acompañada de la interfaz @Local public interface InterfaceName { ... } @Local(InterfaceName.class) public class BeanName implements InterfaceName { ... } UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Clientes Locales vs Clientes Remotos ● Decidir entre cliente local o remoto depende de : – Fuerte o bajo acomplamiento. Cuando se tiene fuerte acomplamiento se recomienda el uso de acceso local, aumentando la eficiencia (performance) – Tipos de clientes. Si el enterprise bean es requerido por una aplicación cliente, se debe definir como remoto. – Distribución de componentes. Si los clientes requieren ser ejecutados en JVM distintas, el enterprise bean debe ser definido como remoto. – Eficiencia (performance) : Factores como latencia de la red, determinan la factibilidad de definir el EJB como remoto.