Primeros pasos con las pruebas de carga en Liferay utilizando JMeter

Cuando estamos desarrollando,  necesitamos conocer como se comportará nuestra solución si recibe un gran tráfico. Por ello, como ya tenemos un poco de experiencia con Liferay portal es una solución robusta, vamos a realizar unos primeros pasos sobre como configurar JMeter para hacer Test de stress.

JMeter es una herramienta para poder realizar pruebas de carga, aunque en realidad podemos realizar muchas otras pruebas como por ejemplo pruebas unitarias para conexiones de bases de datos con JDBC, FTP, LDAP, Servicios web, JMS, HTTP…

Instalando JMeter

Lo primero que tenemos que hacer es descargar JMeter de su página oficial (http://jmeter.apache.org/download_jmeter.cgi) y descomprimirlo.

Una vez hecho esto vamos a la carpeta y allí /bin y ejecutamos ApacheJMeter.jar

Seguir leyendo “Primeros pasos con las pruebas de carga en Liferay utilizando JMeter”

Anuncios

Arquitectura de Liferay – entendiendo permisos, roles, usuarios…

Ya hemos visto en otros post como desarrollar porltets, la arquitectura de un portlet o incluso como Spring Framework maneja las peticiones para desarrollar portlets. Ahora ya es hora de entender un poco mejor la arquitectura de Liferay.

Para que un producto tan grande como Liferay hay muchas maneras de representar la arquitectura. Yo voy a basarme en la documentación oficial de Liferay http://www.liferay.com/documentation/liferay-portal/6.0/administration/-/ai/portal-architectu-4 para intentar explicar cómo funcionan los roles, las organizaciones, etc.

Vamos a ir desgranando cada uno de los elementos, empezando por el más importante. Los usuarios.

Usuarios

Son las personas físicas que usan el sistema.

  • A los portales son acceden usuarios
  • Los usuarios pueden concentrarse en grupos de usuarios.
  • Los usuarios pertenecen a organizaciones

Por defecto, los usuarios tienen una serie de páginas públicas (que le servirán para tener su propio blog por ejemplo) y  privadas (que le servirán para tener un calendario personalizado)

Seguir leyendo “Arquitectura de Liferay – entendiendo permisos, roles, usuarios…”

Aprendiendo a validar formularios con Liferay IDE y AlloyUI

Ya hemos visto en anteriores post como crear portlets, incluso hemos realizado un portlet pequeño con Spring y hemos utilizado Service Builder para conectarnos con la base de datos.

Ahora llega el momento de intentar “poner bonito” a nuestros portlet. He de decir que no se mucho de frontend, más bien sé lo básico. Aunque estoy aprendiendo mucho con el libro de Liferay in Action. En él hay un capitulo donde se habla de AlloyUI y la verdad, me ha parecido una utilidad muy interesante, así que voy a crear un pequeña introducción sobre AlloyUY.

Que es AlloyUI

En pocas palabras, AlloyUI es un metaframework  de interfaz, esto quizás suene un poco raro, pero tranquilo, ahora daremos más detalles.

El frontend de las páginas web (normalmente) se crean utilizando un combinación de 3 tecnologías: HTML, CSS y Javascript. Estas 3 tecnologías unidad constituyen la experiencia de Usuario (UX) para cualquier sitio web.

Básicamente, HTML proporciona la estructura de la página, CSS proporciona la capa visual, es decir cómo se representan visualmente los elementos y Javascript ofrece la interacción de los elementos de la página. Si algo se mueve, cambia de forma, se arrastra “es culpa” de Javascript.

Seguir leyendo “Aprendiendo a validar formularios con Liferay IDE y AlloyUI”

Service Builder para desarrollar un portlet con gestión de base de datos Parte 3/3

Ya estamos terminando nuestro portlet para Liferay que nos ayudará a aprender y gestionar tareas Por si no recordáis o acabáis de llegar a este post aquí os dejo un par de links a la parte 1 y a la parte 2 respectivamente.

https://jesuslc.com/2013/05/07/utilizando-spring-para-desarrollar-un-portlet-para-liferay-con-base-de-datos-service-builde

https://jesuslc.com/2013/05/14/service-builder-para-desarrollar-un-portlet-con-gestion-de-base-de-datos-parte-23

Vamos a poner de nuevo como quedará el portlet porque hoy viene una de las partes más importantes, la vista:

Llegados aquí ya tenemos el Service Builder montado, si recordáis con solo definir un par de entidades con sus columnas correspondientes en el archivo services.xml y pulsar sobre la tarea (ant) “build Services” creamos un montón de código que nos sirve para mapear la base de datos. En el anterior post vimos cómo crear los controladores, en este ya tenemos el final. Vamos a definir 5 archivos JSP donde programaremos todos los elementos gráficos.

Creando el init

Así que lo primero para tener bien organizado el código será crear una carpeta llamada “JSP” (imaginación al poder) en docroot.

En Este nuevo directorio “/docroot/jsp” creamos el primer archivo llamado init.jsp Este primer archivo no tiene nada de vista, solo todas las importaciones de taglib, lo hacemos así para no repetir el mismo código de importaciones en todas las clases. También hemos definido 3 variables que nos ayudaran a no repetir código.

Seguir leyendo “Service Builder para desarrollar un portlet con gestión de base de datos Parte 3/3”

Service Builder para desarrollar un portlet con gestión de base de datos Parte 2/3

En la primera parte de este post vimos cómo crear un service builder, ahora vamos a trabajar para terminar el portlet.

Para no perder el foco, así es como quedará nuestro portlet gestor de tareas para Liferay.

Ahora en este post vamos a seguir desarrollando el portlet, si recordáis dejamos el portlet justo después de pinchar en service builder, el árbol del proyecto ha quedado más o menos así.

Ahora vamos a seguir desarrollando el portlet, para ello utilizaremos un patrón MVC, donde ya tenemos casi terminado el modelo, ¡y no hemos escrito nada de código! Solo un archivo y mira ya todo lo que hemos hecho 😉

Creando una utilidad

Como vimos en un post anterior, el controlador es el encargado de manejar a la vista y al modelo, para ello vamos a crearnos una clase que nos será muy útil.

Seguir leyendo “Service Builder para desarrollar un portlet con gestión de base de datos Parte 2/3”

Service Builder para desarrollar un portlet con gestión de base de datos Parte 1/3

En el blog ya hemos tratado el tema de crear portlets que procesan un formulario así que ya he llegado la hora de aprender a utilizar portlets que interactúen con la base de datos.

Existen muchas maneras de crear portlets que utilicen la base de datos de Liferay, pero en este hoy vamos a aprovecharnos un poco más de Liferay IDE y vamos a aprender a utilizar Service Builder.

Para realizar este post me he basado en las explicaciones de los libros “Liferay in Action” y “Portlets in Action”, además de utilizar como idea de base el portlet de Albert Coronado disponible en el Marketplace de Liferay, sí como la documentación oficial de Liferay.

Service Builder

Es una herramienta integrada en el plugin de Liferay para Eclipse que genera el código necesario (clases e interfaces) para crear una capa de servicio y poder utilizar la persistencia.

¿Por qué utilizar Service Builder?

En un principio cuando nos conectamos a base de datos utilizamos JDBC para obtener una conexión e implementar los métodos de acceso. El problema es que mantener el código es un poco difícil, consultas SQL, acoplamiento con la base de datos, había que tener cuidado con las inyecciones SQL,… en fin eran necesarias mucho esfuerzo para mantenerlo todo.

Después llegaron los EJB´s y para no alargar mucho la explicación llegó Hibernate, que tomó un enfoque un tanto diferente. Hibernate crea un mapeo entre objetos del mundo Java y tablas de la base de datos, lo que ayuda al programador a “desentenderse” de la base de dato y utilizar objetos Java con los que está familiarizado.

La combinación de Spring e Hibernate se utiliza desde hace mucho tiempo, Spring e Hibernate nos ayudan a construir portlets y aplicaciones web de una manera bastante sencilla.

Como ya hemos dicho Service Builder es una utilidad creada por Liferay que nos ayuda con todo este proceso. Con solo definir un archivo XML se genera automáticamente toda la configuración de Hibernate y Spring que un portlet pueda interactuar con la base de datos.

Seguir leyendo “Service Builder para desarrollar un portlet con gestión de base de datos Parte 1/3”

OpenXava, NaviOX y una aplicación de facturación completa

Hace ya bastante tiempo que hablamos de crear una aplicación con OpenXava y nos pusimos a crear clases, a modelar,…  siguiendo el libro Aprende OpenXava con ejemplos. Hasta ahí todo bien, lo que pasa es que Openxava ofrece muchísimas más cosas y que mejor que las descubramos mediante un post.

Hoy hablaremos sobre un proyecto creado en OpenXava que está en Sourceforge, este proyecto se llamado AcmeOX(http://sourceforge.net/projects/acmeox/)  es una aplicación de facturación realizada con OpenXava para mostrar la potencia del framework.

Además también me llego una noticia sobre NaviOX(http://www.openxava.org/es/naviox) que es un llamémoslo “contenedor de aplicaciones”. NaviOX proporciona a nuestra aplicación Seguridad (usuarios y roles) y navegabilidad. A mí personalmente me sirve para ir probando la aplicación a medida que la voy desarrollando, ya que es muy ligero y me ahorra tiempo a la hora de ir probando/ configurando diferentes entornos.

Creando un proyecto

Lo primero es tener configurado OpenXava, aquí en el blog hay algún artículo sobre esto, sino siempre tienes este manual: http://www.openxava.org/es/quick-start/1c aunque yo recomiendo la instalación del Capítulo 4 del libro “Aprende Openxava con ejemplos” disponible aquí http://www.openxava.org/es/book los 5 primeros capítulos.

Seguir leyendo “OpenXava, NaviOX y una aplicación de facturación completa”