130 likes | 318 Views
J2EE Enterprise JavaBeans. EJBs: Introducción. Tecnología por excelencia para el desarrollo de componentes en la parte servidora con la plataforma J2EE Deben de conformar a la especificación de J2EE y sólo se pueden ejecutar en un contenedor de EJBs
E N D
J2EEEnterprise JavaBeans Arquitectura Web en Aplicaciones Empresariales Java/J2EE
EJBs: Introducción • Tecnología por excelencia para el desarrollo de componentes en la parte servidora con la plataforma J2EE • Deben de conformar a la especificación de J2EE y sólo se pueden ejecutar en un contenedor de EJBs • Última especificación EJB 2.1 disponible en: http://java.sun.com/products/ejb/docs.html • Los contenedores de EJBs son lo que hacen a esta tecnología tan atractiva, ya que ofrecen soporte para: • Transacciones • Seguridad • Persistencia Arquitectura Web en Aplicaciones Empresariales Java/J2EE
Beneficios de EJBs • Aplicaciones basadas en EJBs son difíciles de desarrollar (tecnología difícil de asimilar), sin embargo: • Aplicaciones basadas en EJBs nos permiten concentrarnos en la lógica de negocio, sin preocuparnos de transacciones y connection pooling provista por contenedor • Los EJBs son componentes REUTILIZACIÓN • Clara separación entre desarrollo, explotación y administración de una aplicación EJB • El contenedor de EJBs gestiona transacciones, detalles de manejo de estado, multi-threading, connection pooling, seguridad y otros detalles de bajo nivel que el desarrollador no necesita conocer. Arquitectura Web en Aplicaciones Empresariales Java/J2EE
Web Container EJB Container Browser Web Application Enterprise Bean Database Puesto de EJB container en una aplicación de empresa Arquitectura Web en Aplicaciones Empresariales Java/J2EE
La gran pregunta:¿Cuando usar EJBs? • No siempre, para simples aplicaciones web con servlets y JSPs sobra. • Son una posible solución para alta disponibilidad y escalabilidad. • Cuando el sistema debe manejar transacciones distribuidas Arquitectura Web en Aplicaciones Empresariales Java/J2EE
Categorías de EJBs • 3 tipos de Enterprise JavaBeans: • Entity Beans: representan entidades de negocio y proveen acceso a datos a través de métodos. Se basan en la idea del mapeo objeto/relacional • Session Beans: pensados para modelar procesos de negocio que son accedidos de manera síncrona • Message-driven Beans: pensados para modelar procesos de negocio que son accedidos de manera asíncrona, permiten el uso de JMS desde EJBs Arquitectura Web en Aplicaciones Empresariales Java/J2EE
Entity EJBs • Dos tipos: • BMP (Bean Managed Persistence) • Se delega en el desarrollador las tareas de persistir, buscar y recuperar las entidades. • CPM (Container Managed Persistence) • La persistencia la gestiona el contenedor de forma que el desarrollador no se preocupa de las sentencias SQL de inserción, recuperación, etc. • Un Entity EJB representa en cada momento a una entidad en base de datos. Muy académicos • Presentan problemas de rendimiento. Arquitectura Web en Aplicaciones Empresariales Java/J2EE
Session EJBs • Dos tipos: • Stateful (Con estado) • El contenedor garantiza el mantenimiento del estado del componente entre distintas invocaciones (se serializan y deserializan) • Stateless (Sin estado) • El contenedor de EJBs no garantiza que un mismo EJB guarde su estado entre dos invocaciones del mismo cliente. Son “pooleables” y más ligeros que los Stateful Arquitectura Web en Aplicaciones Empresariales Java/J2EE
Message Driven Beans • Incorporados en la especificación 2.0. • Pensados para mensajería asíncrona. • Funcionan sobre JMS (manejo de colas de mensajes, publish & subscribe/p2p, etc.) • Interesantes para integración de sistemas. Arquitectura Web en Aplicaciones Empresariales Java/J2EE
Contenedores de EJBs • JBoss: http://www.jboss.org • Contenedor más popular en el mundo y open source • Download: http://prdownloads.sourceforge.net/jboss/jboss-3.2.3.zip?download • Documentación: http://www.jboss.org/modules/html/docs/jbossj2ee.pdf • Otros muy conocidos y muy usados comercialmente: Bea WebLogic, IBM Websphere o Oracle9i Arquitectura Web en Aplicaciones Empresariales Java/J2EE
Referencias • www.javasoft.com • www.theserverside.com • Transparencias de Diego López de Ipiña: http://paginaspersonales.deusto.es/dipina • Java Server Programming J2EE Edition (Wrox) Arquitectura Web en Aplicaciones Empresariales Java/J2EE