¿Cómo crear aplicaciones con jHipster?

Cuando uno se enfrenta a la definición de un nuevo programa informático o software siempre existen una serie de condicionantes externos que afectan a la solución que se quiere diseñar. Y es que a la hora de implementar una plataforma informática una de las preguntas que debemos hacernos es, ¿cómo crear aplicaciones? Para ello, debemos tener en cuenta los siguientes aspectos o condicionantes:

Si quieres saber más sobre el futuro de SAP, accede al Webinar aquí
  • Experiencia del equipo. ¿Qué integrantes habrá en el equipo? ¿Qué experiencia y conocimiento tendrán?
  • Plazos que cumplir. ¿Cuándo deberá ser el Go-Live? ¿Cuándo es la fecha límite? ¿Existen logros vencimientos intermedios?
  • Escenario de implantación. ¿Es una aplicación local o internacional 24x7? ¿Es on-premise o SaaS?
  • Extensibilidad. ¿Debo prestarle importancia a la personalización y funcionalidad a medio y largo plazo?
  • Escalabilidad. ¿El sistema deberá escalar en datos y número de usuarios?
  • Sostenibilidad. ¿Quién mantendrá la plataforma y cómo lo hará?
  • Presupuesto. ¿Cuál es la dotación económica para ejecutar el proyecto?

 Son una serie de factores que no son especialmente técnicos, pero que deben tenerse en cuenta como señales de que la solución informática se diseñará bajo una serie de premisas y no tendrá contratiempos durante todo su ciclo de vida. 

https://lh5.googleusercontent.com/KpF7m_ZLVEI0EMsGWUMF2O4KSYav1p_6Z_Q84FnjmSsUkIixE9kkMUh3g2BR1ufHNb8Or3jvEgWX4WGjlOmmqBe4pl42pYhxREUH8-aBI2d4S1mmbEq-tJr2VUAD3jKoKFtZyj87

 Figura 1. Debe evitarse reinventar la rueda

 

La importancia de usar aplicaciones prácticas y fiables aunque sean repetidas

 Otro error común que suelen cometer las organizaciones cuando implementan un nuevo software o aplicaciones, es tratar de reinventar la rueda. Una de las primeras acciones que se deben realizar es la reutilización.

 Por ejemplo, se debe buscar una solución en el mercado que satisfaga en un porcentaje elevado la funcionalidad a diseñar (por ejemplo, en torno a un 80%), y que además, funcione sin invertir más tiempo del necesario (o bien que sea posible adaptarse al cambio de funcionalidad restante).

 Si el sistema en su totalidad no existe en el mercado, este deberá subdividirse en otras piezas más pequeñas que serán los componentes que formarán parte del sistema final. Para cada uno de estas componentes se deberá realizar el mismo ejercicio.

 

Descargar webinar - La IA aprende a hablar y escuchar

 

 Las nuevas tendencias en el desarrollo de aplicaciones de negocio a medida nos llevan a sistemas basados en una capa frontend usualmente desarrollada con un framework JS/Javascript (Backbone, AngularJS, ExtJS, OpenUI5, etc.) y una capa backend que expone una serie de servicios REST en Java, Node.js, Php, etcétera.

 Esta combinación permite desacoplar la capa de visualización de la de negocio y fomenta la reutilización de servicios dentro de la organización (arquitectura SOA). De esta forma, y gracias a esta arquitectura sería posible plantear las siguientes situaciones:

  • Sustituir la capa visual dentro de X años por otra que aporte mejoras
  • Crear una aplicación móvil que consuma servicios del backend
  • Tener un equipo de desarrollo especializado en el front y un equipo de desarrollo especializado en el back
https://lh3.googleusercontent.com/R-JVFeht4LvIGVmTW8j4vW7UPLL_cGHk5pxDHsqGuqeQn3jiQ4CSedNiNomNAscSTNwNSXKX02c0fqQyzrdsBatJL94X2jGCohHl0XU2FlI5-mMb0uJmHRKLOx91A3VYcCqNvpmP

Figura 2. Los sistemas actuales se estructuran en frontend y backend

 Una de las combinaciones en el frontend/backend que están teniendo más aceptación sería para el frontend AngularJS y para el backend usar Java/Spring IO.

https://lh3.googleusercontent.com/PIPAKe8QMv-pBkgvszMOK_uFhoaKYEDfKAtiZwZAtrPOPAKS1IXSgiQK4cZ_-oTBU4CP9NAdkB12wqKje7X7DcyvHmDRJe7wPBr7mR1XwC5A8Hf5Trq3BYbd2YD1-HWBV6z-B2CZ

 https://lh5.googleusercontent.com/KwXJXI2QFFg-DhXkRG4tKg7T9mUIyD8rz2zja6PB9jNE-lvTHOGUq02cLhNnQBmHvVHX_-VAvaWbDaU7dn8KTHTOASWBBF8EbLzCN50_c24HRjYKRqT4LNGi6YLVr9shKVj2ybFx

 Figura 3. Uno de los techstacks más utilizados para diseñar aplicaciones frontend/backend

  

¿Cómo crear aplicaciones? El ejemplo de un cliente

 A modo de ejemplo real, un cliente del sector automoción nos pidió ayuda con un nuevo proyecto en el que los condicionantes externos fueron los siguientes:

  • Poco tiempo. Existía un límite para la decisión del Go/No-Go que implicaba realizar la puesta en marcha en una determinada fecha
  • SaaS. Realizar una aplicación consumida en modo SaaS, donde además el usuario final no la iba a gestionar. Sólo utilizaría el frontoffice
  • Experiencia de usuario o UX. Realizar una aplicación que sea fácil de entender. Implicaba realizar un estudio de usabilidad y prototipado previo para realizar algo realmente intuitivo. Sin formación ni manuales.
  • Volumen elevado de datos. La aplicación se utilizaría para la visualización de grandes cantidades de información.

Ante estos problemas, vimos que debíamos invertir el tiempo en aportar valor a nuestro cliente y reducir a la mínima expresión el tiempo destinado a tareas de poco valor. Así, la búsqueda de un mejor servicio nos llevó a jHipster.

Gracias a esta tecnología pudimos crear una aplicación completa autogenerada desde un diagrama de clases UML. En menos de una semana fuimos capaces de generar una capa de servicios REST y un backoffice para gestionar las entidades (CRUD, crear, leer, actualizar y borrar).

Por si fuera poco, esta tecnología incorporó un motor de búsqueda también con servicios REST que utilizan Elasticsearch para no tener que desarrollar a medida nuevas funciones de búsqueda en los servicios y DAOs.

https://lh5.googleusercontent.com/UnMGYS_blUq01wBzVLL9VmdaTPpTu6279Yo8Oo4rZpQSor_gqmi6CHldFCDOs4W13602okQ8WUk1J5ipt-IVbs3E5Bo20iEgwqdHywjXToXpobtBBdQFUJ9A_NNvfLENTQKPwZIc

 Figura 4. jHipster como acelerador de proyectos software

 De este forma, invertimos el tiempo necesario a diseñar un frontend realizado en Liferay+AngularJS que utilizaría la capa de servicios REST creada con jHipster. Posteriormente, se destinó todo el esfuerzo del proyecto en el prototipado, el diseño de usabilidad y en la carga de datos ETL (extraer, transformar y cargar) con Talend Data Integration.

 

¿Cómo crear aplicaciones con jHipster?

El proceso que debe seguirse para modelar aplicaciones con jHipster es muy simple:

  1. Toma de requerimientos con el cliente. Obtener toda la información posible funcional y no funcional que deberá satisfacer el nuevo sistema.
  2. Casos de uso y actores del sistema UML. Realizar un inventario de casos de uso que permitirá describir toda la funcionalidad del sistema y la relación con todas las partes interesadas.
  3. Diagrama de clases UML. A partir de los documentos anteriores deberemos hacer el ejercicio de identificar qué entidades de negocio se gobernarán en la aplicación y como se relacionan.
  4. Aplicación inicial en jHipster. Crear una aplicación esqueleto inicial con jHipster.
  5. Generar entidades, controladores y pantallas desde UML. Crear todas las capas técnicas (pantallas, controladores, modelo, etcétera) de forma automática con jHipster-UML. Tomar como entrada el diagrama anterior (3) para generar toda la aplicación.

En definitiva, debe analizarse muy bien qué tecnología aplicar en cada nuevo proyecto o producto porque no siempre es sota, caballo y rey. En este caso la tecnología seleccionada fue un acierto permitiéndonos aportar valor donde realmente se requería y minimizar tiempo de desarrollo en tareas de poco valor.

 

¿Quieres que hagamos lo mismo en tu organización? En Enzyme Group Advising, somos expertos en la aplicación y gestión de nuevas tecnologías para crear valor en tu empresa y acelerar el proceso de implementación digital. ¡No lo dudes y ponte en contacto con nosotros! ¡Verás cómo nos adaptamos a tus condicionantes sin problemas!

 Ir a webinars

Más artículos

Combina IA con RPA para maximizar el impacto en el negocio

El pasado 9 de noviembre se celebró Tech Barcelona en el que Enzyme e IBM expusieron a los asistentes los entresijos de la era de la hiperautomatización. Si tú también quieres saber hacia dónde se...

Leer másArrow 41

Watson Assistant y Watson Discovery: el chatbot ganador de IBM

Cómo sacarle partido a tus datos con un asistente personalizado de IBM

Los asistentes virtuales son uno de los sistemas de comunicación que más está creciendo en los últimos años. No en vano, ofrecen

Leer másArrow 41

Monitorización: conoce el estado de tus sistemas y aplicaciones en tiempo real

¿Cómo puede Instana contribuir a la optimización del monitoreo 24/7? En anteriores artículos, hemos hablado sobre la importancia de saber que ocurre en nuestros entornos. En este sentido, la...

Leer másArrow 41

Automatiza procesos inteligentes con low-code

La automatización de procesos inteligentes aporta una innumerable cantidad de beneficios y ventajas a las compañías que la implementan, como puede ser la agilización de procesos, reducción del error...

Leer másArrow 41

¿Cómo alcanzar el crecimiento sostenible de una empresa?

Ya sea una startup o una multinacional, todas las empresas tienen en común la búsqueda de un crecimiento sostenible a lo largo del tiempo. ¿Qué es lo que hace que una empresa consiga persistir en el...

Leer másArrow 41