En una T.I. enfocada a SOA, construyendo servicios de negocio que dan soporte al negocio, ¿tiene sentido hablar de aplicaciones?

Según la Wikipedia, la aplicación es:

En informática, una aplicación es un tipo de programa informático diseñado como herramienta para permitir a un usuario realizar uno o diversos tipos de trabajo.

Y es que históricamente siempre ha habido aplicaciones. Éstas eran unos instalables (por ejemplo los archivos msi de Windows) que el usuario sacaba de una caja de cartón e instalaba en su ordenador. Posteriormente, con la arquitectura cliente-servidor, las grandes empresas implantaron sistemas de distribución e instalación automática del software (aunque no faltaba alguna que iba con un CD de instalación por todas las oficinas).

Con la llegada de las aplicaciones web, en esta década, se pasó a un modelo de tres capas en el que una aplicación de frontal (con el interfaz de usuario), pasando por una lógica de negocio, realizaba operaciones contra una base de datos . Esta base de datos era de uso exclusivo de la aplicación de frontal. Por lo tanto seguíamos teniendo claro el concepto de aplicación. Al fin y al cabo era una aplicación “silo” o solución vertical.

Dando un paso más allá, con la llegada de SOA y la orientación a servicios y el prometido fin de las aplicaciones tipo “silo”, nos formulamos la siguiente pregunta ¿sigue habiendo aplicaciones como tales o se han sustituido por un conjunto de servicios de negocio? En principio, la primera idea sería responder que sí, que la aplicación ha muerto. Sin embargo, si nos detenemos a considerarlo un poco, tendríamos que analizar el tema desde varios puntos de vista.

  1. Desde el punto de vista organizativo, cuando se desarrolla un servicio, normalmente se hace en el ámbito de un grupo de servicios que cumplen con una determinada funcional. Estaríamos hablando de un “paquete” de servicios o de una agrupación funcional. El desarrollo de esta funcionalidad, deberá tener un equipo de desarrollo, con un jefe de proyecto al frente y que trabaja a costa de un prespuesto. ¿Cómo llamaríamos a este paquete? lo normal es que lo denominemos aplicación.
  2. Desde el punto de vista técnico, los servidores de aplicaciones (donde se van a ejecutar nuestros servicios) necesitan cierto tipo de empaquetado del código a ejecutar. En una aplicación J2EE o JEE (realizada en la plataforma Java) se cuenta con un tipo de archivo de extensión .EAR (Enterprise Archive) que es el paquete que se despliega en el servidor de aplicaciones para ser ejecutado posteriormente.
    A este tipo de ficheros de empaquetado se les llama aplicación, aunque tiene un significado de índole puramente técnica, tiene también tiene sus repercusiones sobre nuestro código ya que de la forma de empaquetar depende la configuración de la seguridad de acceso a los servicios, la forma en que estos pueden ser llamados (en remoto o en local), etc.
  3. Para un usuario, la aplicación es lo que se ve, con lo que puede interactuar… una serie de pantallas, con botones, enlaces, etc. que puede ejecutar para que produzca como resultado el efecto que él busca y que da respuesta a su negocio: dar de alta un cliente, un listado de oficinas, etc. Aunque por detrás esta funcionalidad está implementada en servicios web, lo que realmente le importa a este usuario es precisamente el interfaz de usuario. A esto se le suele llamar aplicación de frontal o front-end.
    Tanto es así, que el usuario de negocio, normalmente el que solicita la construcción de esta aplicación, puede pedir una maqueta de la misma para estar seguro de que hemos entendido los requisitos funcionales. No cabe duda de que esto sigue siendo una aplicación a la antigua usanza, da igual que sea una aplicación de escritorio o una aplicación web.

¿ha muerto la aplicación?

Podríamos decir que en la parte de atrás (en el backend), en el mundo de los servicios y SOA, sí ha muerto. No tiene sentido hablar de aplicación en un “ecosistema” de servicios que se apoyan unos en otros, que son compuestos en base a otros más sencillos, que no tienen una vocación “silo” o departamental, sino que están pensados y desarrollados para dar soporte a toda la organización o incluso más alla de esta (a los clientes, proveedores o partners).

De cara al usuario, en la parte que se ve (el frontend) no ha muerto en absoluto. La aplicación que ve el usuario y con la que trabaja a diario seguirá existiendo como tal,  de ella depende lo que se ha dado en llamar la “experiencia de usuario”, y por ella seremos “juzgados”.

Comparte esta entrada

Share