Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
03.02.05
Omar Gmez
Agenda
Qu es Java? Conceptos bsicos Plataformas Arquitecturas de negocios empresariales J2EE Enterprise Java Beans Desarrollo y despliegue de un EJB usando el servidor de aplicaciones JBOSS Desarrollo y despliegue de un EJB usando el servidor de Aplicaciones Borland Enterprise Server Mostrar una aplicacin que utiliza distintos clientes para acceder a un servidor de aplicaciones
Qu es Java?
Lenguaje de programacin ( OO ) Herramientas y entorno de desarrollo Clases, libreras y APIs que son entregadas como estndar
Conceptos bsicos
JVM. El compilador de java genera bytecodes los cuales son interpretados por una maquina virtual, esta maquina virtual procesa los bytecodes sobre una arquitectura especifica.
HelloWorldApp.class
Conceptos bsicos
JRE. Java Runtime Enviroment, que incluye libreras principales, plugins, JVM. JDK. Java Development Kit. Que incluye, el lenguaje java, herramientas de desarrollo, APIs, JRE.
Conceptos bsicos
Plataformas
J2ME Java 2 Platform, Micro Edition. Desarrollada para que Java corra sobre dispositivos como son: handhelds, celulares, relojes, etc. Contiene un conjunto de libreras mas reducido que J2SE. J2SE Java 2 Platform, Standard Edition. Conjunto de herramientas para desarrollar aplicaciones Java que incluye APIS, JDK, JRE, JVM, ejemplos de cdigos fuente. J2EE Java 2 Platform Enterprise Edition. Proporciona un conjunto de herramientas y libreras necesarias para extender a java en tecnologas de server side. J2EE es un sper conjunto de J2SE.
Cliente-servidor 2 capas
Cliente-Servidor usada en los 80s y 90s
Lgica de Presentacin DB Lgica de Negocio Servidor
Cliente
Cliente-servidor 2 capas
Desventajas. La capa lgica de negocio y la capa lgica de presentacin son mezcladas, lo que resulta difcil de entender el sistema y realizar mantenimiento.
Cliente-servidor 2 capas
Lgica de Negocio
Lgica de Presentacin
Cliente-servidor 3 capas
Separa la capa lgica de presentacin y lgica de negocio en 2 capas
Lgica de Presentacin Lgica de Negocio
DB
Cliente-servidor 3 capas
Desventajas Complejidad involucrada en desarrollar la aplicacin Se requiere conocimientos de computo distribuido( Ej.. RMI, CORBA ) Conocimiento para midleware ( transacciones, pool de conexiones, accesos a dbs, seguridad, networking, etc. )
Servidores de aplicaciones
Proporcionan un Framework necesario para desarrollar una aplicacin multicapa. Proporcionan servicios tales como computo distribuido, multihilo, seguridad y persistencia. En el pasado cada servidor de aplicacin era desarrollado independientemente y por lo tanto implementaba los servicios de diferente manera. Migrar una aplicacin de un servidor de aplicaciones a otro era difcil imposible.
Servidores de aplicaciones
En 1997 un grupo de vendedores de servidores de aplicaciones ( BEA, IBM, Oracle, Sybase, SUN entre otros) comenzaron a trabajar juntos para definir un estndar en los servidores de aplicacin basados en el lenguaje Java. La visin fue crear un conjunto de servicios estandarizados y unas APIs para acceder a estos servicios. Enfocarse en la aplicacin y no en midleware.
Estndar J2EE
Define rigurosamente un conjunto de servicios que un servidor de aplicaciones debe tener, junto con una API estndar para acceder a estos servicios. Basado en Java. J2EE no es un producto es una especificacin, en base a esta especificacin existen muchas implementaciones. Las implementaciones son proporcionadas por fabricantes terceros ( IBM, BEA, Borland,...), estas implementaciones deben de cumplir la especificacin J2EE.
Servicios J2EE
Servicios J2EE
RMI-IIOP Java Remote Method Invocation-Inter Internet Object Protocol JNDI Java Naming and Directory Interface JDBC Java Database Connectivity JTA/JTS Java Transaction API/ Java Transaction Service JMS Java Message Service Java Mail JAAS Java Authentication and Authorization JCA J2EE Connector Architecture JAXP Java API for XML Parsing
Contenedores J2EE
Contenedor de Applets Contenedor Web Contenedor de EJBs Contenedor de aplicaciones cliente
Contenedor Web
Servlets Java Server Pages
Servlets
Proporcionan un mtodo para escribir programas del lado del servidor. Su uso comn es la generacin de paginas web dinmicas.
Servlets
Servlets
Contenedor de EJBs
Session Beans Entity Beans Message Driven Beans
Qu es EJB?
Componentes con interfaces definidas. Alojados dentro de un Contenedor. Pueden ser colocados en un entorno multicapa distribuido.
Motivacin
Usados para ayudar a resolver problemas de negocios. Realizan la lgica de negocios. Acceder a bases de datos. Acceder a otros sistemas.
Caractersticas
Componentes Distribuidos Portables Diferentes tipos de clientes pueden acceder a ellos. ( Servles, JSP, dispositivos mviles, CORBA )
Tipos de clientes
Roles
Bean provider Application Assembler The EJB Deployer The System Administrator Container Provider Server Provider
Roles
Red
Explicit middleware
Algunos ejemplos de objetos Middleware Java RMI, CORBA, DCOM. APIs en el Middleware son explcitamente invocadas por aplicaciones de usuario para funciones a nivel del control de sistema( transacciones, seguridad, etc. )
Red
Implicit middleware
Ejemplos de componentes basados en Middleware: EJB, CORBA Component Model, COM+. APIs en Middleware son invocadas implcitamente por el component framework( contenedor de componentes ).
Red
Entity Beans
Modelan datos de negocio Dos tipos:
El Contenedor maneja la persistencia El Bean maneja la persistencia
Message-driven Beans
Capaces de enviar y recibir mensajes asncronos
Ingredientes de un EJB
The Enterprise Bean class :The EJB object The Remote Interface :The Home object The Home Interface The Deployment Descriptor The Vendor Specific Files :The EJB Local object The Local Interface :The Local Home object The Local Home Interface
EJB object
Realiza operaciones de Midleware implcitamente como son: Manejo de transacciones distribuidas Seguridad Administracin de recursos y ciclo de vida del bean Persistencia Accesibilidad remota Ayuda localizacin transparente de componentes Monitoreo Sabe como realizar la lgica intermedia que un contenedor EJB requiere antes de que una llamada a un mtodo sea proporcionada por una instancia de un Bean Class. Un EJB object es el interceptor de solicitudes, o el pegamento entre el cliente y el Bean.
EJB object
El cliente siempre trabaja con los EJB objects, nunca lo hace directamente con los beans.
Remote interface
La interfaz duplica todos los mtodos de la lgica de negocio que expone el Bean class
Home object
Como adquieren los clientes las referencias de los EJB objects? Para adquirir un referencia a un EJB object, el cliente pregunta por un EJB object de un EJB object Factory. Factory es responsable de encontrar, crear y destruir los EJB objects.
Home interface
Define los mtodos para crear, destruir y encontrar EJB objects El Home object implementa la interfaz EJBHome
Home interface
Local interfaces
EJBLocalObject EJBLocalHome Corren sobre la misma VM del Contenedor de EJB reduccin el tiempo de las llamadas a mtodos
Deployment Descriptor
Especifica requerimientos para el EJB
Manejo del bean y ciclo de vida Requerimientos de persistencia ( entity beans) Requerimientos de transaccin Requerimientos de seguridad
MathLib model
Comes with Java 2 platform
EJB en accin!!!
Registro y lookup
EJB en accin!!!
Creacin de un nuevo EJB
EJB en accin!!!
llamadas a mtodos de negocio
EJB en accin!!!
Interfaces locales
Un EJB proporciona interfaces EJBLocalHome y EJBLocalObject
Usados por clientes locales Todava, el EJB puede proporcionar interfaces remotas
Los datos son pasados por referencia( no copias) No hay transparencia en la ubicacin
Un cliente remoto no puede llamar a una interfaz local
Ejemplo 1
Desarrollo y despliegue de un EJB usando el servidor de aplicaciones JBOSS
Ejemplo 2
Desarrollo y despliegue de un EJB usando el servidor de aplicaciones Borland Enterprise Server
Referencias
Winder & Roberts. Developing Java Software 2ed. John Wiley & Sons Ed Roman, Scott Ambler, Tyler Jewell. Mastering Enterprise JavaBeans 2ed. John Wiley & Sons Ian Sommerville. Software Engineering 6ed. Addison Wesley Paul R. Reed, Jr. Developing Applications with Java and UML. Addison Wesley Enterprise JavaBeans Specification, version 2.1 .Sun Microsystems Java 2 Platform Enterprise Specification, version 1.4 .Sun Microsystems www.borland.com www.jboss.org
Gracias !!!