EJB



  • 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

Desarrollo de aplicaciones WEB

@HarveyHerrera Desarrollador JAVA Conceptos Generales Explicación previa de los siguientes datos: Sitio Web: Un sitio web es ...