Sunteți pe pagina 1din 12

QU ES GLASSFISH?

Glassfish es un servidor de aplicaciones que implementa la plataforma JavaEE5, por lo que soporta las ltimas versiones de tecnologas como: JSP, JSF, Servlets, EJBs, Java API para Servicios Web (JAX-WS), Arquitectura Java para Enlaces XML (JAXB), Metadatos de Servicios Web para la Plataforma Java 1.0, y muchas otras tecnologas. GlassFish 3.0.1 ha sido desarrollado a partir de un tiempo de ejecucin modular y flexible basado en el estndar OSGi. Permite a las organizaciones crear e implementar aplicaciones web con el perfil web de Java EE 6 ligero y sacar partido fcilmente de la potencia de toda la plataforma de Java EE 6 para aplicaciones de empresa. Los desarrolladores tambin pueden beneficiarse del modelo de programacin simplificado y de las mejoras en la productividad que ofrece Java EE 6. El resultado es una plataforma flexible que aplica solamente lo necesario para responder a las necesidades de la empresa, reduciendo el coste y la complejidad. Puesto que GlassFish emplea una arquitectura de microkernel basada en OSGi, los programadores pueden comenzar con el perfil web de Java EE 6 y utilizar el Update Center (Centro de actualizacin) para actualizar dinmicamente hasta la plataforma completa de Java EE 6. GlassFish tambin es compatible con NetBeans 6.9, Eclipse, y con varios tipos de lenguajes de secuencia de comandos, como JRuby/Ruby y Groovy/Grails. Asimismo, cuenta con una consola de administracin muy fcil de usar y est conectado con el Update Center (Centro de actualizacin). Glassfish adems de ser un servidor de aplicaciones, es una comunidad de usuarios, que descargan y utilizan libremente Glassfish, tambin existen partners que contribuyen agregndole ms caractersticas importantes a Glassfish. Adems ingenieros y beta testers, que desarrollan cdigo y prueban las versiones liberadas para eliminar todo fallo que se encuentre, y muchos otros miembros. La comunidad fue lanzada en el ao 2005 en java.net. Glassfish implementa la Plataforma JavaEE5, y que es totalmente compatible con sta, peroQu es JavaEE?. Resumiendo, Java Enterprise Edition (JEE) es esencialmente una forma estndar de desarrollar Aplicaciones Java Empresariales que sean portables, esto quiere decir, que puedan ser utilizadas en ms de un servidor sin importar el fabricante, sin necesidad de hacerles cambio alguno. El arranque en es sustancialmente ms rpido porque lo han refactorizado para tener un ncleo (HK2) ms mdulos y contenedores/servicios, donde un servicio podr ser por ejemplo un motor JBI. Esto permitir tener servidores ms livianos, por ejemplo para hacer plataformas de juegos massive scale (tipo warcraft). A continuacin un resumen de algunos proyectos de Glassfish que ms peso estn tomando: JSFTemplating (que se est usando en la consola) Woodstock (componentes JSF) subrayo este por que es el que utilizare en el proyecto

Open MQ (una implementacin de JMS enterprise quality) Hudson (un servidor de integracin continua) jMaki (permite usar diferentes libreras Javascript a la vez, especialmente til para aplicaciones Ajax) Rome (RSS) WADL (escribe interfaces REST) Hablando sobre los grandes grupos de avances incorporados a Glassfish: Todo lo relacionado con entornos enterprise, e.d., alta disponibilidad, clustering Webservices y XML La capa web Seguridad Rendimiento, tiempo de arranque y otras curiosidades que podremos ver en v3 Por otro lado el manejo centralizado de clusters permite desde un mismo servidor GlassFish, ya sea a travs de la consola de administracin o a travs de la lnea de comando (va ssh), administrar (crear, iniciar, detener, eliminar) instancias y clusters en todos los servidores donde se tenga instalado GlassFish 3.1. Igualmente, manejar el servidor fuera de ste es muy fcil, ya que NetBeans y Eclipse proveen un completo soporte. VENTAJAS Como principales ventajas menciona la buena documentacin disponible, que tiene disponible su cdigo fuente, su API REST o su soporte. Sin embargo, Oracle le corrige indicando que no ofrecen soporte de la versin Open Source. Cdigo abierto. Fcil instalacin. Soporte completo con Java EE 5. Integracin total con NetBeans. Mucha documentacin sobre uso, administracin y desarrollo. Consola de administracin amigable. Aunque parezca que no, creo que sigue teniendo el respaldo de SUN.

EN RESUMEN Glassfish es un contenedor J2EE, lo que implica que te da soporte para JSP's/servlets adems de un entorno de ejecucin para EJB's (es decir, es tambin un Contenedor de EJB's).

POR QUE UTILIZAR JAVA SERVER FACE Introduccin Para el desarrollo de aplicaciones de negocio se utiliza frecuentemente el patrn de diseo MVC Modelo Vista Controlador (Model View Controller) que adems es sencillo de implementar en las aplicaciones web. En este patrn el modelo es modificable por las funciones de negocio. Estas funciones son solicitadas por el usuario mediante el uso de un conjunto de vistas de la aplicacin que solicitan dichas funciones de negocio a travs de un controlador, que es el mdulo que recibe las peticiones de las vistas y las procesa. Se suele clasificar en dos tipos a las aplicaciones basadas en MVC: tipo 1. Las vistas conocen la accin que se va a invocar en su peticin. Normalmente la funcin esta cableada dentro de la vista tipo 2. El controlador introduce un conjunto de reglas que mapean a las peticiones con las funciones, controlando adems el flujo de navegacin por la aplicacin. Un ejemplo de aplicaciones de tipo 1 son las que se construyen utilizando JSF o ASP.NET y como ejemplo de tipo 2 seran las creadas con Struts. La creacin de aplicaciones basadas en el patrn MVC se ve facilitada por el uso de marcos de trabajo (frameworks). Un marco de trabajo es un conjunto de APIs y mdulos normalmente acompaados de la documentacin y guia de uso que definen la manera de implementar alguna de las capas de nuestra aplicacin. Lo podemos ver tambin como la estructura o cimientos sobre los que crear nuestra aplicacin. QU ES JSF? JSF es un marco de trabajo para crear aplicaciones java J2EE basadas en el patrn MVC de tipo 1. JSF tiene como caractersticas principales: -Utiliza pginas JSP para generar las vistas, aadiendo una biblioteca de etiquetas propia para crear los elementos de los formularios HTML. Asocia a cada vista con formularios un conjunto de objetos java manejados por el controlador (managed beans) que facilitan la recogida, manipulacin y visualizacin de los valores mostrados en los diferentes elementos de los formularios. Introduce una serie de etapas en el procesamiento de la peticin, como por ejemplo la de validacin, reconstruccin de la vista, recuperacin de los valores de los elementos, etc. Utiliza un sencillo fichero de configuracin para el controlador en formato xml. Es extensible, pudiendo crearse nuevos elementos de la interfaz o modificar los ya existentes.

Y lo que es ms importante: forma parte del estndar J2EE. En efecto, hay muchas alternativas para crear la capa de presentacin y control de una aplicacin web java, como Struts y otros frameworks, pero solo JSP forma parte del estndar. POR QU UTILIZAR JSF EN NUESTROS PROYECTOS? JSF nos permite desarrollar rpidamente aplicaciones de negocio dinmicas en las que toda la lgica de negocio se implementa en java, o es llamada desde java, creando pginas para las vistas muy sencillas (salvo que introduzcamos mucha maquetacin HTML o Javascript) JSF nos ofrece una serie de ventajas: El cdigo JSF con el que creamos las vistas (etiquetas jsp) es muy parecido al HTML estndar. Lo pueden utilizar fcilmente desarrolladores y diseadores web. JSF se integra dentro de la pgina JSP y se encarga de la recogida y generacin de los valores de los elementos de la pgina JSF resuelve validaciones, conversiones, mensajes de error e internacionalizacin (i18n) JSF permite introducir javascript en la pgina, para acelerar la respuesta de la interfaz en el cliente (navegador del usuario). JSF es extensible, por lo que se pueden desarrollar nuevos componentes a medida, Tambin se puede modificar el comportamiento del framework mediante APIs que controlan su funcionamiento.

NOTA: Internacionalizacin (I18N) Internacionalizacin (I18N) es el diseo y la preparacin de software, sitios web y otras aplicaciones a fin de que el cdigo de origen sea vlido para la cultura local y pueda soportar varios idiomas y escrituras. La internacionalizacin se encarga del desarrollo y las pruebas afines al tratamiento de datos y textos extranjeros en un programa. Esto incluira la ordenacin, importacin y exportacin de datos y de texto, el tratamiento correcto de la divisa y de los formatos de fecha y hora, el anlisis sintctico de las cadenas y el tratamiento de las maysculas y minsculas. Tambin incluye las tareas de separar las cadenas (o textos de la interfaz de usuario) del cdigo de origen y asegurarse que las cadenas en el idioma extranjero tienen suficiente espacio para ajustarse a la interfaz de usuario (UI) correctamente. Debera pensar en la internacionalizacin como en el aseguramiento de la funcionalidad subyacente y del funcionamiento de su programa. Desde el punto de vista tcnico podemos destacar los siguientes: JSF forma parte del estndar J2EE, mientras que otras tecnologas para creacin de vistas de las aplicaciones no lo forman, como por ejemplo Struts. JSF dispone de varias implementaciones diferentes, incluyendo un conjunto de etiquetas y APIs estndar que forman el ncleo del framework. Entre estas implementaciones cabe

destacar la implementacin de referencia de Sun Microsystems, actualmente desarrollada como un proyecto open source, y la implementacin del proyecto Apache, MyFaces, dotada de un conjunto de extensiones que la hacen muy interesante para el desarrollo de aplicaciones corporativas. El desarrollo de JSF est realmente empezando. Las nuevas versiones del framework recogen la funcionalidad de versiones anteriores siendo su compatibilidad muy alta, de manera que el mantenimiento de aplicaciones no se ve penalizado por el cambio de versiones.

RIESGOS EN EL DESARROLLO JSF Antes de comenzar el desarrollo con JSF debemos conocer aquellos puntos que lo pueden hacer ms largo de lo realmente necesario. Entre ellos la experiencia nos muestra los siguientes: Utilizar el alicate para clavar. JSF es una herramienta y como tal tiene una forma de uso. Si nos empeamos en seguir desarrollando las pginas como siempre, intentando adaptar JSF al modo al que habitualmente desarrollamos en vez de adaptarnos a JSF complicaremos el desarrollo Abuso del javascript. JSF permite utilizar javascript para hacer ms rpida una pgina html, evitando peticiones al servidor. Sin embargo la introduccin de javascript en la pgina complica y alarga los desarrollos con JSF, y en general con jsp. La capa javascript aade etapas adicionales a la aplicacin, que hace ms difcil su depurado. Un consejo: la pgina debera poderse ejecutar sin prdida de funcionalidad (slo de rendimiento si se desactiva el javascript). La maquetacin compleja tambin complica el desarrollo ya que obliga a utilizar muchas etiquetas y atributos, especialmente en los datatables. Si la maquetacin de nuestras pginas es compleja deberamos pensar en crear componentes JSF a medida que simplifiquen dicho trabajo.

CMO FUNCIONA JSF Normalmente las aplicaciones web se construyen como un conjunto de pantallas con las que va interactuando el usuario. Estas pantallas contienen textos, botones, imgenes, tablas y elementos de seleccin que el usuario modifica. Todos estos elementos estarn agrupados en formularios HTML, que es la manera en que las pginas web envan la informacin introducida por el usuario al servidor. La principal funcin del controlador JSF es asociar a las pantallas, clases java que recogen la informacin introducida y que disponen de mtodos que responden a las acciones del usuario. JSF nos resuelve de manera muy sencilla y automtica muchas tareas:

Mostrar datos al usuario en cajas de texto y tablas.

Recoger los datos introducidos por el usuario en los campos del formulario. Controlar el estado de los controles del formulario segn el estado de la aplicacin, activando, ocultando o aadiendo y eliminando controles y dems elementos Realizando validaciones y conversiones de los datos introducidos por el usuario Rellenando campos, listas, combos y otros elementos a medida que el usuario va interactuando con la pantalla Controlando los eventos que ocurren en los controles (pulsaciones de teclas, botones y movimientos del ratn).

Las aplicaciones JSF estn formadas por los siguientes elementos principales: Pginas JSP que incluyen los formularios JSF. Estas pginas generarn las vistas de la aplicacin Beans java que se conectan con los formularios JSF Clases java para la lgica de negocio y utilidades. Ficheros de configuracin, componentes a medidas y otros elementos del framework. Resto de recursos de la aplicacin web: recursos estticos, javascript y otros elementos.

LAS ETIQUETAS JSF JSf dispone de un conjunto bsico de etiquetas que permiten crear fcilmente componentes dinmicos en las pginas web. Estas etiquetas son: h:commandButton. Un botn al que podemos asociar una accin. h:commandLink. Un enlace hipertexto al que podemos asociar una accin. h:dataTable. Crea una tabla de datos dinmica con los elementos de una propiedad de tipo Array o Map del bean. h:form. Define el formulario JSF en la pgina JSPh:graphicImage. Muestra una imagen jpg o similar. h:inputHidden. Incluye un campo oculto del formulario. h:inputSecret . Incluye un campo editable de tipo contrasea (no muestra lo que se escribe) h:inputText. Incluye un campo de texto normal. h:inputTextarea. Incluye un campo de texto multilnea. h:message. Imprime un mensaje de error en la pgina (si se ha producido alguno). h:messages. Imprime varios mensajes de error en la pgina, si se han producido. h:outputFormat. Muestra texto parametrizado. Utiliza la clase java.text.MessageFormat de formateo. h:outputLabel. Muestra un texto fijo. h:outputLink. Crea un enlace hipertexto. h:outputText h:panelGrid. Crea una tabla con los componentes incluidos en el panelGrid.

h:panelGroup. Agrupa varios componentes para que cierto componente los trate como un nico componente (por ejemplo para meter varios componentes en una celda de un panelGrid. h:selectBooleanCheckbox. Crea una casilla con dos estados: activado y desactivado. h:selectManyCheckbox. Crea un conjunto de casillas activables. h:selectManyListbox. Crea una lista que permite seleccionar mltiples elementos. h:selectManyMenu. Crea una lista desplegable de seleccin mltiple. h:selectOneListbox. Crea una lista en la que se puede seleccionar un nico elemento. h:selectOneMenu. Crea na lista desplegable de seleccin. h:selectOneRadio. Crea una lista de botones, redondos normalmente, excluyentes.

LOS BACKBEANS A las clases java que se asocian a los formularios JSF se les denomina backend beans ya que son los beans (clases java) que estn de tras del formulario. Estos beans se referencian en el fichero de configuracin de JSF en el apartado de managed beans, ya que son beans gestionados por el controlador JSF. este se encarga de su construccin y destruccin automticas cuando es necesario. Estructura de las pginas En su versin ms sencilla, cada pgina JSF est formada por una pgina JSP que contiene un formulario (HTML FORM) y un backbean. El controlador JSF registra en el servidor de aplicaciones un tipo especial de peticin, tpicamente *.jsf, que estar asociado a estas pginas. El primer caso comienza cuando el usuario realiza en su navegador una peticin de navegacin a una url de tipo *.jsf. Cuando al servidor web llega una peticin del tipo pgina JSF, el controlador JSF entra en funcionamiento. Primero comprueba si es la primera vez que se accede a dicha pgina. Si es as, carga la pgina jsp asociada pgina. Jsp y la procesa construyendo en memoria la representacin de los controles de la pgina. Tras esta etapa JSF sabe cmo construir el cdigo HTML de salida y la lista de controles de usuario que la cumplen, es decir, sabe lo que contiene y cmo pintarla. El siguiente paso es asociarle los backbeans. Para ello, del procesamiento de la pgina jsp, el controlador ha obtenido la lista de backbeans asociados, por lo que procede a buscarlos en sus correspondientes mbitos de la aplicacin como la request y la session. Los beans que no existan se crean llamando a los constructores de sus clases, definidos en la seccin de managed beans del fichero de configuracin de JSF. El tercer paso es dar valores a las propiedades de los elementos JSF de la pgina. Aqu juega un papel fundamental el lenguaje de expresiones de JSF, que es parecido al lenguaje de expresiones que se permite en las pginas jsp normales.

En su versin ms sencilla una expresin JSF sera del tipo #{mibackbean.propiedad}. Finalmente el servidor devuelve al usuario una pgina creada a partir de una pgina JSP que incluye normalmente etiquetas JSF, cuyos valores se extraern del backbean asociado, ahora ya actualizados. RESPONDIENDO A LAS ACCIONES DEL USUARIO Una vez que el usuario ve la pgina web que se ha construido con JSF, est listo para comenzar a interactuar con ella. El mtodo ms sencillo de interaccin es el uso de formularios web. Un formulario web simple consta de: Etiquetas que muestran informacin Campos editables El botn de envo del formulario

El controlador JSF dispone de un conjunto de etiquetas que permiten definir formularios JSF. Las ms sencillas son: h:form. Esta etiqueta sustituye al form de HTML, aadiendo la funcionalidad JSF al formulario h:outputText. Sirve para imprimir valores en la pgina h:inputText. Sirve para crear campos editables en los que introducir los datos h:commandButton. Crea botones que envan el formulario

Cuando la pgina JSF contiene elementos que incluyen acciones se ejecuta una fase ms en el procesamiento de la peticin al servidor. Si en nuestro formulario hay botones u otros elementos que tienen una propiedad action, si se pulsa sobre el elemento cuando la peticin sea procesada por el servidor se ejecutar la lgica de la accin asociada a este elemento. Este es el mecanismo JSF habitual para ejecutar a lgica de la aplicacin. Esto se hace ejecutando los mtodos del backbean asociado a la pgina LA NAVEGACIN ENTRE PGINAS Cuando se ejecuta una peticin que incluye una accin se ejecuta el mecanismo de navegacin de JSF. Tras la ejecucin de la accin, el controlador determina cmo se debe mostrar al usuario el resultado de la peticin. Hay varias posibilidades: Finalizar la peticin mostrando la pgina jsp que origin la peticin, que es la opcin por defecto. Mostrando otra pgina jsp diferente. Enviando al usuario una peticin de redireccin, por lo que el navegador del usuario se dirigir automticamente a otra pgina cuando reciba la respuesta a su peticin.

Este mecanismo de navegacin se implementa de manera sencilla en la pgina JSF. Cuando el controlador JSF llama al mtodo asociado a la accin, este devuelve un valor de tipo String. Este valor es utilizado junto con las reglas de navegacin creadas en el fichero de configuracin de JSF para determinar la pgina que se debe enviar como respuesta al usuario. Las reglas de navegacin definen: La pgina de origen. Indica el jsp que origin la peticin. La etiqueta de destino. Es la cadena que identifica el destino. Esta cadena es devuelta por el mtodo del backbean que procesa la accin. La pgina de destino para cada etiqueta. Normalmente es el jsp el que procesar la peticin de salida, utilizando los datos que hay en la request y en la sesin.

Si es un envo directo interno o una redireccin externa. En el primer caso la respuesta se generar en la misma peticin mediante una redireccin interna a otro jsp o servlet. En el segundo caso se enviar como respuesta al navegador una instruccin de redireccin para que el navegador realice una nueva peticin de otra pgina. Adems las direcciones de origen admiten el * para que una misma regla sirva para mltiples pginas. Tambin se pueden poner reglas por defecto que se aplican a todas las peticiones. Las etapas del procesamiento de la peticin Para entender el procesamiento de una pgina JSF hay que entender el ciclo de vida de la peticin dentro del controlador JSF. Este ciclo de vida est compuesto de 6 fases (al menos en la versin actual, ya que se est preparando la versin 2.0 de JSF y esto podra cambiar) Durante el procesamiento de una peticin el controlador JSF realiza las siguientes etapas: Restaurar los componentes de la vista (restore view). En esta etapa el controlador construye en memoria la estructura de componentes de la pgina. Aplicar los valores de la peticin.. (apply request values). En esta etapa se recuperan los valores de la request y se asignan a los beans de la pgina. Procesamiento de las validaciones (process validations). Se verifican los parmetros de entrada segn un conjunto de reglas definidas en un fichero de configuracin. Actualizar los valores del modelo (update model values). Los valores ledos y validados son cargados en los beans. Invocacin a la aplicacin (invoke application). Se ejecutan las acciones y eventos solicitados para la pgina. Si es necesario se realiza la navegacin.

Generacin de la pgina (render response). En esta fase se genera la pgina que ser enviada al usuario con todos sus elementos y valores actualizados.

GESTIN DE LOS BEANS JSF gestiona automticamente la creacin y el acceso a los beans que utilizan las pginas jsp. Para ello el controlador determina qu beans utiliza la pgina y dnde debe almacenarlos. El fichero de configuracin JSF mapea los nombres cortos de los beans utilizados en las pginas con las clases java que los definen. Cuando se crean los beans?. JSF busca el bean cada vez que se menciona en la pgina, en el orden en que aparecen en la pgina. Si el bean no existe en el mbito, lo crea. Por tanto el orden de las expresiones EL determinan el orden de la creacin de los beans, si usamos ms de un bean en la pgina. Cmo se hace esto internamente?. Al procesar la pgina JSP, las etiquetas JSF aaden cdigo que busca el bean mencionado en cada expresin EL. Si el bean no existe en el mbito elegido (request, session o application) se crea uno nuevo, llamando a su constructor por defecto, y se asocia al mbito requerido. Este mecanismo es fundamental para la comprensin del procesamiento de la pgina, sobre todo si trabajamos con beans de mbito request. EN RESUMEN JAVA SERVER FACE NOS PERMITE ESTO:

Bibiografia Glassfish: http://jmbeas.blogspot.com

S-ar putea să vă placă și