Experiencias - Java Server Faces & Enterprise Java Beans & Managed Beans & Java Persistence Api
mayo 11, 2012¡Ey!, recientemente hemos terminado un proyecto en la universidad unos compañeros y yo que consistía en realizar una web "tipo carrito" o e-commerce.
En estos días hemos aprendido lo "chungo" que es realizar una aplicación web, y es que al menos yo, creemos en muchas ocasiones que el diseñador web es un tipo que se pasa la vida relajado en el sofá de su casa en comparación a los que generan aplicaciones de escritorio. Todo lo contrario diría yo, es muy complicado lanzar una aplicación web en condiciones, con una cierta funcionalidad base, ya sea por la complejidad de las herramientas a utilizar (donde JSF & Cia. tiene una curva de aprendizaje horrible no, lo siguiente) o por la configuración de los distintos tipos de navegadores, con sus compatibilidades e incompatibilidades, en fin -> cosa de locos.
Para realizar esta práctica se nos dieron una serie de requisitos:
· Una tienda online con:
- Productos
- Categorías
- Pedidos
- Buscador de productos (por precio,categoria, nombre)
- Zona de administración (donde se pueden gestionar los pedidos, productos y categorías)
- Gestión de temas (poder cambiar entre distintos CSS)
- Gestión de productos a través de un fichero Excel.
- Más una decena más de otros requisitos funcionales, referentes a como debería ser la web ideal de este tipo según el maestro.
¿Parece poco eh?, pues hemos necesitado 5 hombres durante 6 días, a 8 horas el día, es decir: 240 horas (productividad al 85% de media, es decir, sin parar).
El esquema general es (de vista de la web hasta las entrañas de la base de datos):
JSF_
|-> se comunica con Managed Beans
|-> se comunica con EJB
|-> se comunica con JPA
Breve explicación:
- JSF es una nueva manera de presentar elementos web, que admiten un modo de programación especial y tiene conexión directa con los Managed Beans.
- Los Managed Beans, son unidades software java que contienen métodos de conexión a JPA, haciendo de controlador entre la vista (JSF) y el modelo (EJB).
- En JPA nos encontramos con un concepto nuevo, el de entidad, que es una unidad software que contiene información de la tabla que se encuentra en la base de datos y hace de conector entre ambas, dando lugar a persistencia automática en los datos. Permite la creación de tablas en la base de datos a partir de configurar una clase tipo JPA y viceversa, a partir de una tabla en la base de datos podemos extraer un archivo JPA correspondiente a la tabla.
- Los EJB son unidades software autocontenidas y reutilizables que se pueden integrar en una aplicación. Por regla general gestionan el ciclo de vida de la aplicación, y podemos configurarlos para que guarden estado(statefull), no guarden (stateless) o hagan de comunicador (singleton). Hablando en cristiano, son unos archivos java que contienen la conexión con las entidades JPA anteriormente mecionadas.
Una vez que está todo bien conectado y configurado, según nuestro modelo, ya podemos empezar a personalizar las opciones de la web según nos piden en los requisitos. Y es que esto es una de las partes más complicadas, ya que conlleva un conocimiento profundo de las distintas opciones de configuración de los elementos y hay que conocer bien el ciclo de vida del proceso web.
Si queréis más información sobre el proyecto o alguna duda sobre como funciona podéis comentar.
PD: y gracias a mis compañeros, por la práctica tan buena que ha resultado:
- Sergio Andrés García
- Jonatan Núñez
- Iván Díaz Olegario
- Álvaro Salinero
1 comentarios
Saludos
ResponderEliminarInteresante podeis comoartir docuemntacion y codigo?
Exitos
Sé respetuoso/a, en este blog caben todo tipo de opiniones con respeto y serenidad.