- Qué es EJB?
- (Enterprise Java Bean) es un componente que debe ejecutarse de un contenedor de EJBs y se diferencia bastante de un JavaBean normal. un JavaBean normal. un JavaBean es un objeto java al cual accedemos de forma directa de nuestro programa.
- Requisitos para funcionamiento de EJB
- tener una comprension basica del lenguaje de programacion Java, editor de texto y ejecucion de programas, etc. debido a que vamos a desarrollar aplicaciones basadas empresariales utilizando EJB, por lo que sera bueno si usted tiene conocimiento de otras tecnologias como la base de datos servidores.
- Qué es el desarrollo basado en componentes?
- es la creacioin de sistemas intensivos en software requiere dividir el sistema en componentes con intefaces bien definidas, que posteriormente seran ensamblados para generar el sistema.
- Servicios que proporciona EJB.
- Transacciones
- Seguridad
- Concurrencia
- Threding
- Gestion y pooling de recursos
- persistencia
- Gestion de mensajes
- Escalabilidad
- Funcionamiento de EJB
- el cliente de un componente nunca hablara directamente con la implementacion del componente(enterpise bean).
- Un objeto remoto hara de " cortafuegos " y permitira que el contenedor interponga sus servicios en cada llamada.
- el objeto remoto ofrece los mismos metodos de negocio que el bean.
- Tipos de beans
- de entidad:
- Su objetivo es encapsular los objetos del lado del servidor que almacena los datos.
- dirigidos por mensajes
- Son los unicos beans con funcionamiento asincrono Usando el Java Messaging System(JMS) se suscriben a un tema (topic) a una copia o a una cola y se activan al recibir un mensaje dirigido a dicho tema o cola. no requeire de su instalacion por parte del cliente.
- de sesión.
- Gestionan el flujo de la informacion en el servidor. Generalmente sirven a los clientes como una fachada de los servidores proporcionados por otros componentes disponibles en el servidor pueden existir dos tipos:
- Con Estado:
- En un bean de sesion con estado, las variables de instancia del bean almacenan datos especificos obtenidos durante la conexion con el cliente. Cada bean de sesion con estado, por tanto almacena el estado conversacional de un cliente que interactua con el bean. Este estado conversacional se modifica conforme el cliente va realizando llamadas a los metodos de negocio del bean. El estado convesacional no se guarda cuando el cliente termina la sesion.
- Sin Estado:
- Los beans de sesion sin estados son objetos distribuidos que carecen de estado asociado permitiendo por tanto que se les acceda concurrentemente. No se garantiza que los contenidos de las variables de instancia se conserven entre llamdas al metodo.
- Desarrollo de beans
- El desarrollo y programacion de los beans suele ser un proceso bastante similar sea cual sea el tipo de bean Consta de los siguientes 5 pasos:
- Escribe y compila la clase bean que contienen a todos los metodos de negocio
- Escribe y compila las dos interfaces del bean: home y componente.
- Crean un descriptor XML del despligue en el que se describa que es el bean y como debe manejarse . Este fichero debe llamarse ( " ejb-jar.xml ").
- Pon la clase bean, los interfaces y el descriptor XML del despligue en un fichero EBJ JAR. Podria haber mas de un bean el mismo fichero EBJ JAR, pero nunca habar mas de un descriptor de despligue.
- Despliegue el bean en el servidor usando las herramientas proporcionadas por el servidor de aplicaciones.
- Clientes de los beans
- El cliente puede ser una clase java cualquiera, ya sea un cliente aislado o un servlet que se esta ejecutando en el contenedor web del servidor de aplicaciones. El codigo que deben ejecutar los clientes del bean es basicamente el mismo en cualquier caso.
- Ventajas de EJB
- La arquitectura EJB proporciona beneficios a todos los papeles que hemos mencionado proveiamente (desarrolladores, ensambladores de aplicaciones. administradores, desplegdores, fabricantes de servidores). Vamos en enumerar las ventajas que obtendran los desarrolladores de aplicaciones y los clientes finales.
Las ventajas que ofrece la arquitectura Enterprise JavaBeans a un desarrollador de aplicaciones se listan a continuación.
- Simplicidad. Debido a que el contenedor de aplicaciones libera al
programador de realizar las tareas del nivel del sistema, la escritura de
un enterprise bean es casi tan sencilla como la escritura de una clase Java.
El desarrollador no tiene que preocuparse de temas de nivel de sistema como
la seguridad, transacciones, multi-threading o la programación distribuida.
Como resultado, el desarrollador de aplicaciones se concentra en la lógica
de negocio y en el dominio específico de la aplicación.
- Portabilidad de la aplicación. Una aplicación
EJB puede ser desplegada en cualquier servidor de aplicaciones que soporte
J2EE.
- Reusabilidad de componentes. Una aplicación EJB
está formada por componentes enterprise beans. Cada enterprise bean
es un bloque de construcción reusable. Hay dos formas esenciales de
reusar un enterprise bean a nivel de desarrollo y a nivel de aplicación
cliente. Un bean desarrollado puede desplegarse en distintas aplicaciones,
adaptando sus características a las necesidades de las mismas. También
un bean desplegado puede ser usado por múltiples aplicaciones cliente.
- Posibilidad de construcción de aplicaciones complejas.
La arquitectura EJB simplifica la construcción de aplicaciones complejas.
Al estar basada en componentes y en un conjunto claro y bien establecido de
interfaces, se facilita el desarrollo en equipo de la aplicación.
- Separación de la lógica de presentación
de la lógica de negocio. Un enterprise bean encapsula típicamente
un proceso o una entidad de negocio. (un objeto que representa datos del negocio),
haciéndolo independiente de la lógica de presentación.
El programador de gestión no necesita de preocuparse de cómo
formatear la salida; será el programador que desarrolle la página
Web el que se ocupe de ello usando los datos de salida que proporcionará
el bean. Esta separación hace posible desarrollar distintas lógicas
de presentación para la misma lógica de negocio o cambiar la
lógica de presentación sin modificar el código que implementa
el proceso de negocio.
- Despliegue en muchos entornos operativos. Entendemos
por entornos operativos el conjunto de aplicaciones y sistemas (bases de datos,
sistemas operativos, aplicaciones ya en marcha, etc.) que están instaladas
en una empresa. Al detallarse claramente todas las posibilidades de despliegue
de las aplicaciones, se facilita el desarrollo de herramientas que asistan
y automaticen este proceso. La arquitectura permite que los beans de entidad
se conecten a distintos tipos de sistemas de bases de datos.
- Despliegue distribuido. La arquitectura EJB hace posible
que las aplicaciones se desplieguen de forma distribuida entre distintos servidores
de una red. El desarrollador de beans no necesita considerar la topología
del despliegue. Escribe el mismo código independientemente de si el
bean se va a desplegar en una máquina o en otra (cuidado: con la especificación
2.0 esto se modifica ligeramente, al introducirse la posibilidad de los interfaces
locales).
- Interoperabilidad entre aplicaciones. La arquitectura
EJB hace más fácil la integración de múltiples
aplicaciones de diferentes vendedores. El interfaz del enterprise bean con
el cliente sirve como un punto bien definido de integración entre aplicaciones.
- Integración con sistemas no-Java. Las APIs relacionadas,
como las especificaciones Connector y Java Message Service (JMS), así
como los beans manejados por mensajes, hacen posible la integración
de los enterprise beans con sistemas no Java, como sistemas ERP o aplicaciones
mainframes.
- Recursos educativos y herramientas de desarrollo. El
hecho de que la especificación EJB sea un estándar hace que
exista una creciente oferta de herramientas y formación que facilita
el trabajo del desarrollador de aplicaciones EJB.
Entre las ventajas que aporta esta arquitectura al cliente final, destacamos
la posibilidad de elección del servidor, la mejora en la gestión
de las aplicaciones, la integración con las aplicaciones y datos ya existentes
y la seguridad.
- Elección del servidor. Debido a que las aplicaciones EJB
pueden ser ejecutadas en cualquier servidor J2EE, el cliente no queda ligado
a un vendedor de servidores. Antes de que existiera la arquitectura EJB era
muy difícil que una aplicación desarrollada para una determinada
capa intermedia (Tuxedo, por ejemplo) pudiera portarse a otro servidor. Con
la arquitectura EJB, sin embargo, el cliente deja de estar atado a un vendedor
y puede cambiar de servidor cuando sus necesidades de escalabilidad, integración,
precio, seguridad, etc.lo requieran.
Existen en el mercado algunos servidores de aplicaciones gratuitos (JBOSS, el servidor de aplicaciones de Sun, etc.) con los que sería posible hacer unas primeras pruebas del sistema, para después pasar a un servidor de aplicaciones con más funcionalidades.
- Gestión de las aplicaciones. Las aplicaciones
son mucho más sencillas de manejar (arrancar, parar, configurar, etc.)
debido a que existen herramientas de control más elaboradas.
- Integración con aplicaciones y datos ya existentes.
La arquitectura EJB y otras APIs de J2EE simplifican y estandarizan la integración
de aplicaciones EJB con aplicaciones no Java y sistemas en el entorno operativo
del cliente. Por ejemplo, un cliente no tiene que cambiar un esquema de base
de datos para encajar en una aplicación. En lugar de ello, se puede
construir una aplicación EJB que encaje en el esquema cuando sea desplegada.
- Seguridad. La arquitectura EJB traslada la mayor parte
de la responsabilidad de la seguridad de una aplicación de el desarrollador
de aplicaciones al vendedor del servidor, el Administrador de Sistemas y al
Desplegador (papeles de la especificación EJB) La gente que ejecuta
esos papeles están más cualificados que el desarrollador de
aplicaciones para hacer segura la aplicación. Esto lleva a una mejor
seguridad en las aplicaciones operacionales.
- Qué es un Stateless bean?
- Un bean de sesión sin estado es un tipo de enterprise bean, que normalmente se utiliza para realizar operaciones independientes. Un
bean de sesión sin estado según su nombre no tiene ningún estado de
cliente asociado, pero puede conservar su estado de instancia. EJB
Container normalmente crea un grupo de pocos objetos de bean apátridas y
utiliza estos objetos para procesar la solicitud del cliente. Debido
a la agrupación, no se garantiza que los valores de variable de
instancia sean iguales en las búsquedas / llamadas de método.
- Qué es un Statefull bean?
- Un bean de sesión con estado es un tipo de enterprise bean que preserva el estado de conversación con el cliente. Un bean de sesión con estado según su nombre mantiene el estado del cliente asociado en sus variables de instancia. EJB Container crea un bean de sesión con estado independiente para procesar cada solicitud del cliente. Tan pronto como finalice el ámbito de la solicitud, se destruye el bean de sesión.
No hay comentarios:
Publicar un comentario