¿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

¿Qué es un RPA y qué puede hacer por las empresas?

La automatización robótica de procesos o RPA permite liberar gran parte de los recursos de una empresa al mismo tiempo que garantiza un servicio y una experiencia de usuario de calidad. Algo que...

Leer másArrow 41

Top 5: tendencias tecnológicas que impactaron en 2022 y su evolución en 2023

El avance tecnológico al que estamos expuestos ha ido cogiendo fuerza con el paso del tiempo, siendo este avance cada vez más rápido y disruptivo. En este artículo te presentamos 5 tendencias...

Leer másArrow 41

Asistentes conversacionales: cuánto pueden contribuir en tu negocio

En sus primeros 5 días abierto al público, ChatGTPregistró más de un millón de usuarios. Tan buena acogida ha encendido todas las alarmas en sus competidores. Por ejemplo, Google ya trabaja a destajo...

Leer másArrow 41

¿Qué papel juega la inteligencia artificial en los negocios actuales?

Desde sus inicios, la inteligencia artificial fue diseñada para realizar determinadas operaciones que se consideraban propias de la inteligencia humana. Hoy en día, la IA tiene diversas aplicaciones...

Leer másArrow 41

Commercial excellence: cómo podemos mejorarla gracias a la IA

¿Sabías que se puede utilizar la inteligencia artificial (IA) para mejorar las prácticas de ventas, mejorar los resultados y acercarte a la commercial excellence? Haciendo uso de una infraestructura...

Leer másArrow 41