¿Qué son los Servicios Web (Web Services)?

Como he dicho en muchos de los artículos, uno de los objetivos de este blog es aprender y enseñar lo que sé dentro del mundo SAP y de tecnología en general. En este caso vamos a ir a algo básico, pero no con ello conocido por todos. Es probable que haya mucha gente que ya sepa de lo que estoy hablando, pero seguro que hay algunos que les viene bien para sentar las bases. Vamos a hablar de:

¿Qué es un Servicio Web?

Café y cigarro, muñeco binario

Los servicios web son aplicaciones que se comunican y comparten datos e información a través de la red, utilizando un conjunto de estándares y protocolos abiertos. Están diseñados para soportar la interacción máquina a máquina, facilitando la interoperabilidad entre sistemas heterogéneos. Es decir, dos sistemas no necesitan conocerse para poder comunicarse mientras se acojan a las reglas de comunicación del estándar de servicio web usado. Puedes conectar un SAP con Java, Python, etc. Y cualquier tecnología que sepa manejar los Servicios web.

Vamos a verlo con una analogía. Por ejemplo la telefonía. Existen terminales con distintas tecnologías, fijos, fax, Android, IOS, etc. Pero todos pueden conectarse a la red y hacer y recibir llamadas, mensajes y datos. Cada tecnología usa un estándar de comunicación y, cuando haces una llamada no andas pensando si el que recibe la llamada es Android, IOS o fijo.


Sistemas como Cajas Negras

Y para conseguir entenderlo del todo e intentar bajar a tierra el concepto, podemos simplificarlo viendo a los sistemas como Cajas Negras.

Imagina que cada sistema o aplicación es como una casa grande y compleja, llena de diferentes habitaciones. Cada habitación contiene algo valioso: información, herramientas, o incluso formas de interactuar con el mundo exterior. Pero para acceder a estos tesoros, necesitas entrar por la puerta correcta.

Los servicios web son como estas puertas. Cada puerta está diseñada para un propósito específico: algunas te permiten ver lo que hay dentro (consultar datos), otras te permiten cambiar algo (modificar datos), otras te permiten agregar cosas nuevas (introducir nuevos datos) o incluso eliminar algo existente.

Cuando usas un servicio web, es como si tuvieras la llave correcta para abrir una de estas puertas. Lo interesante es que estas puertas pueden estar en cualquier parte del mundo. No importa dónde estés, si tienes la llave correcta (en este caso, el acceso al servicio web adecuado y la forma de llamarlo), puedes abrir la puerta y hacer lo que necesites hacer.

Por ejemplo, cuando usas una aplicación en tu teléfono para consultar el clima, estás utilizando un servicio web para «abrir la puerta» de un sistema que te proporciona información meteorológica actualizada. O cuando haces un pedido en línea, estás usando otro servicio web para «abrir la puerta» de un sistema de comercio electrónico, permitiéndote agregar productos a tu carrito y realizar una compra.


Ejemplo «Real»

Imagínate que tienes un sistema SAP de gestión comercial y de creación con clientes (CRM) y quieres que cualquier sistema que ‘capte’ posibles futuros clientes, cree una ficha de datos y un documento para que un comercial le contacte. Por ejemplo, una persona da sus datos en una web o cuando una persona se da de alta en otra empresa del grupo pero cede sus datos para fines comerciales.

En SAP podemos crear un servicio web que permita recibir:

  • Nombre
  • Apellidos
  • Email
  • Telefono
  • Id externo

Cuando el servicio web reciba esta información, internamente, ya en SAP, creará el BP y el documento de seguimiento. Y el servicio devolverá:

  • Id BP SAP
  • Id Documento Seguimiento

¿Qué sistemas llamarán a este Servicio Web? Pues cualquiera que:

  • Tenga acceso a la Máquina de SAP (por Red, firewall y Autenticación)
  • Sepa llamar al servicio

En este caso la web y el sistema que gestione la otra empresa. ¿Qué tecnologías son? Da igual, ¿es HTML? ¿PHP? ¿Java? ¿SAP? ¿. NET? Da lo mismo, mientras que sepa como llamar y tenga visibilidad. Y quienes quieran llamar en un futuro claro.


Tipos de Web Service

Existen varios tipos de servicios web, pero los más comunes son:

SOAP (Simple Object Access Protocol)

SOAP es un protocolo estándar que permite la comunicación entre aplicaciones a través de redes, utilizando XML para codificar los mensajes.

Archivo WSDL (Web Services Description Language)

Los servicios SOAP cuentan con un archivo de definición del servicio en formato XML que el sistema que lo crea lo genera y se lo entrega a cualquier sistema que quiera usarlo. En ese documento está definido todas las acciones, estructuras de mensajes entrada / salida y los tipos de datos de cada campo.  De esa forma, cualquier sistema que quiera usar ese servicio web no necesita conocer el sistema destino, solamente debe saber generar y recibir ficheros XML en base a las especificaciones del WSDL.

Seguridad en SOAP

A nivel de seguridad tenemos muchas opciones o capas de seguridad para el uso de los servicios web SOAP:

  • WS-Security: es una extensión de SOAP para abordar la seguridad en la comunicación de servicios web. Permite Autenticación mediante tokens de seguridad como contraseñas, tokens SAML, y certificados X.509.
  • SSL/TLS: Aunque no es específico de SOAP, el uso de SSL (Secure Socket Layer) o TLS (Transport Layer Security) añade una capa adicional de seguridad al encapsular la comunicación SOAP en un canal seguro.

REST (Representational State Transfer)

REST no es un protocolo sino un conjunto de principios arquitectónicos para diseñar servicios web. REST utiliza métodos HTTP como GET, POST, PUT y DELETE para operaciones CRUD (Crear, Leer, Actualizar, Eliminar), lo que lo hace intuitivo y fácil de usar.  Los datos y la funcionalidad se consideran «recursos» y se accede a ellos a través de URIs (Uniform Resource Identifiers).

El formato de intercambio más habitual es mediante JSON (JavaScript Object Notation) que es un formato ligero de intercambio de datos. Es fácil de leer y escribir para humanos, y fácil de analizar y generar para máquinas. Aunque también puede usar XML, HTML O texto plano.

Ventajas de REST

  • Eficiencia y Escalabilidad: REST permite manejar un gran número de solicitudes simultáneamente, lo que lo hace muy escalable.
  • Facilidad de Uso: Al usar estándares HTTP, es fácil de entender y utilizar para los desarrolladores.
  • Flexibilidad: Permite el uso de múltiples formatos de datos como JSON, XML, texto plano, etc., lo que lo hace versátil.

Desventajas

  • Seguridad: La seguridad en REST debe ser manejada cuidadosamente, ya que no proporciona estándares de seguridad integrados como SOAP.
  • Limitaciones en Solicitudes Complejas: Para operaciones que requieren un procesamiento más complejo o transacciones, REST puede ser menos adecuado que otras tecnologías como SOAP.

OpenAPI (Swagger)

OpenAPI es un estándar ampliamente aceptado para describir servicios web RESTful. Permite a los desarrolladores definir toda la API (endpoints, operaciones, parámetros, respuestas, etc.) en un formato estructurado (generalmente YAML o JSON). Proporciona una interfaz gráfica muy visual donde además se pueden probar los servicios.


OData, la Evolución de REST

Sobre este tipo de servicios web ya tenemos un artículo en el blog. Así que no me voy a repetir.


Comparativa entre SOAP y REST

Son dos tipos de Servicios Web distintos, hay otros pero son los más usados, a pesar de que el REST es relativamente más moderno, no implica que sea mejor o que SOAP sea obsoleto. Cada uno tiene sus ventajas e inconvenientes y sus usos recomendados.

Naturaleza

  • SOAP: Es un protocolo estándar más estricto.
  • REST: No es un protocolo sino un conjunto de principios arquitectónicos.

Formato de Mensaje

  • SOAP: Utiliza XML exclusivamente.
  • REST: Puede usar varios formatos como JSON, XML, HTML, texto plano.

Seguridad

  • SOAP: Ofrece una mayor seguridad con estándares como WS-Security. Mejor para operaciones que requieren un alto nivel de seguridad.
  • REST: La seguridad depende del transporte (como HTTPS). Menos robusto en comparación con SOAP.

Uso de Recursos

  • SOAP: Requiere más ancho de banda y recursos debido a su estructura XML más detallada.
  • REST: Generalmente más ligero, usando JSON, lo que lo hace más rápido y eficiente en términos de uso de la red.

Operaciones

  • SOAP: Ideal para operaciones complejas y con necesidades de transacciones ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad)..
  • REST: Adecuado para operaciones más simples y solicitudes de estado. Aunque con OData las posibilidades de «complicar» las operaciones relacionando entidades aumentan su complejidad.

Usos Comunes

  • SOAP: Preferido en entornos empresariales. Utilizado para operaciones que requieren un alto nivel de fiabilidad y seguridad, como transacciones financieras.
  • REST: Ampliamente utilizado en aplicaciones web y móviles por su simplicidad y facilidad de uso.Ideal para servicios que requieren escalabilidad y rendimiento, como redes sociales, servicios en la nube.

Flexibilidad

  • SOAP: Menos flexible en términos de formatos y enfoques.
  • REST: Más flexible y fácil de usar. Permite una mayor escalabilidad.

Conclusión

  • SOAP es más adecuado para operaciones que necesitan un alto nivel de seguridad y transacciones complejas, comúnmente usado en entornos corporativos y empresariales.
  • REST es preferido para aplicaciones que requieren una mayor escalabilidad y rendimiento, siendo más flexible y fácil de implementar, lo que lo hace ideal para aplicaciones web y móviles modernas.

Cada uno tiene sus fortalezas y es importante elegir el enfoque correcto basado en los requisitos específicos del proyecto y del entorno en el que se va a utilizar.

Así he hecho yo mi carrera

OData y SAP Gateway

Como el objetivo de este Blog es aprender y aportar conocimiento para que el que quiera aprenda, voy a explicar conceptos que, pareciendo básicos, puede ayudar a la gente a entender el ecosistema y las funcionalidades.


Serie de Artículos sobre OData

Este artículo pertenece a una serie de artículos que se van complementando poco a poco como itinerario de conocimiento:


¿Qué es OData?

OData (Open Data Protocol) es una especificación abierta que define un conjunto de mejores prácticas para la construcción y el consumo de APIs RESTful. Fundamentado en protocolos web estándar HTTP, ATOM y JSON, permite a los desarrolladores exponer y consumir datos a través de servicios web de una manera simple y estándar.


Pero ¿Cuándo y por Quién?

Un poco de historia nos lleva de vuelta al año 2007, cuando Microsoft lideró el desarrollo de OData como parte de su iniciativa de plataforma de datos ADO.NET. En 2012, la Organización para el Avance de Estándares de Información Estructurada (OASIS) tomó el control de la norma, y desde entonces, su adopción y desarrollo han sido constantes.


Funcionalidad

Su capacidad para tratar los datos como recursos RESTful le otorga un papel vital en la construcción de aplicaciones modernas que necesitan interactuar con bases de datos, no solo para la simple lectura y escritura de datos, sino también para operaciones más complejas. OData soporta operaciones CRUD (Crear, Leer, Actualizar, Eliminar), así como consultas más complejas a través de sus capacidades de filtrado, ordenamiento, agrupación y paginación.


OData Entidad y Relaciones

Una entidad en OData es una unidad de datos que representa un objeto del mundo real. Cada entidad tiene un conjunto de propiedades y se identifica de forma única mediante una clave. Pudiendo hacer acciones sobre ella (CRUD). Por ejemplo la entidad Pedido Ventas, Producto, Interlocutor Comercial, etc.

Las entidades a menudo tienen relaciones entre ellas. Por ejemplo en la entidad Pedido de Ventas podemos tener relacionadas las entidades Cliente, Datos Organizativos, Notas, Anexos, etc. De esa forma podemos consultar la entidad padre y además las relaciones que se requieran.


OData ventajas sobre el REST puro

En OData tenemos las siguientes Ventajas:

  • Exploración de Datos: Las relaciones entre entidades en OData permiten a los clientes explorar el gráfico de datos de una manera estructurada y coherente.
  • Consultas Complejas: Con OData, puedes hacer consultas más complejas que abarcan múltiples entidades y sus relaciones, todo en una única petición.
  • Metadatos: OData proporciona un documento de metadatos que describe todas las entidades, propiedades y relaciones.
  • Estándar y Consistencia: Al tener un modelo de datos claramente definido con entidades y relaciones, OData ofrece una forma estándar de interactuar con el API, lo cual simplifica el desarrollo y el mantenimiento.
  • Optimización del Tráfico: Al poder seleccionar sólo las entidades y relaciones específicas que necesitas, se reduce la cantidad de datos transferidos sobre la red.

En una API REST puro, cada recurso (que es similar a una entidad) se accede mediante su propia URL. No hay una forma estándar de describir las propiedades o las relaciones del recurso, lo que puede llevar a una mayor complejidad para entender la estructura y la funcionalidad del API. En REST puro, las relaciones entre recursos a menudo se manejan mediante URL o IDs incrustados en las respuestas, sin una forma estándar de describir o navegar estas relaciones. Esto puede complicar las operaciones como filtrado, ordenación o selección de campos para datos relacionados


Ejemplo de uso de OData

Para poder probar OData podemos usar la guía oficial de OData en su web, usando Postman en el apartado Getting Started – Learning OData on Postman.

Ejemplo de ejecución en postman del proyecto de OData https://www.postman.com/collections/bf7d9130241aaa7160d8

OData en SAP – SAP Gateway

Ahora bien, ¿Cómo se enmarca OData en el ecosistema SAP? Aquí es donde entra en juego SAP Gateway.

SAP Gateway es un componente clave que facilita el camino para conectar dispositivos, entornos y plataformas no-SAP a sistemas SAP, de una forma segura y escalable. SAP Gateway aprovecha OData para exponer los datos y las funcionalidades de los sistemas SAP a aplicaciones basadas en web, móviles y otras plataformas.

Comparativa entre comunicaciones directas o por medio de SAP Gateway y OData

La integración de OData en SAP Gateway permite la creación de interfaces de usuario y la fácil exposición de la funcionalidad de los sistemas SAP. Esto ha allanado el camino para un desarrollo más rápido y eficiente de aplicaciones modernas que consumen datos y funcionalidades de SAP.


Funcionalidades y limitaciones de SAP Gateway

Las funcionalidades que le dan poder a SAP Gateway son:

  1. Exposición de servicios OData: Gateway puede exponer datos y funcionalidades de SAP como servicios OData, permitiendo el desarrollo de aplicaciones web y móviles.
  2. Seguridad y Autorización: Proporciona control granular sobre qué datos y funciones están disponibles para qué usuarios a través de la gestión de roles y autorizaciones de SAP.
  3. Soporte para múltiples formatos de datos: Puede proporcionar datos en formatos JSON y XML, que son comúnmente utilizados en aplicaciones web y móviles.

Desde la introducción de SAPUI5 y Fiori, el papel de OData en el ecosistema SAP ha ganado aún más importancia. SAPUI5 y Fiori se basan en servicios OData para recuperar datos y funcionalidades de los sistemas SAP.

A pesar de sus muchas ventajas, SAP Gateway tiene algunas limitaciones. Por ejemplo, puede no ser la mejor opción para escenarios que requieran transacciones de alta velocidad o una gran cantidad de datos en tiempo real. Además, el rendimiento puede verse afectado si se manejan grandes volúmenes de datos a través de servicios OData.

Transacciones para el uso de SAP Gateway

Existen varias transacciones que son esenciales al trabajar con SAP Gateway. Algunas de las más importantes incluyen:

  • SEGW: SAP Gateway Service Builder, utilizado para desarrollar, probar y activar los servicios oData.
  • /IWFND/MAINT_SERVICE: Para activar y mantener los servicios.
  • /IWFND/ERROR_LOG: Para revisar los registros de error de Gateway.
  • /IWFND/APPS_LOG: Herramienta de rastreo para solucionar errores de aplicaciones en SAP Gateway.
  • /IWBEP/REG_MODEL: Para registrar los modelos de datos.
  • /IWBEP/TRACES: Permite la activación de trazas para servicios oData.
  • /IWFND/CACHE_CLEANUP: Útil para limpiar el caché de metadatos.
  • /IWBEP/CACHE_CLEANUP: Limpia el caché del modelo de datos.
  • SM59: Utilizada para configurar conexiones RFC.
  • SICF: Para configurar y activar los servicios HTTP necesarios para la comunicación oData.

Estas transacciones son cruciales para trabajar con SAP Gateway, desde el desarrollo y mantenimiento de servicios hasta la depuración y el manejo de errores. Utilizarlas eficientemente permitirá una mejor implementación y gestión de servicios oData en el entorno SAP.

Algunos trucos que debes conocer:

  1. Utiliza la herramienta Gateway Client: La transacción /IWFND/GW_CLIENT te permite probar tus servicios directamente en el sistema SAP, lo cual es muy útil durante el desarrollo y la depuración.
  2. Depuración de servicios OData: Puedes depurar los servicios OData en Gateway utilizando la transacción /IWBEP/DEBUG_GW_SERVICE, lo cual es muy útil para solucionar problemas y optimizar tus servicios.
  3. F12 en el Navegador: Cuando estás en Fiori, por ejemplo, es muy útil abrir la consola de desarrollo de Chrome, Firefox, etc. Para saber las llamadas hacia el backend (Gateway) que realiza Fiori. Esto te da una idea del servicio llamado, la request lanzada y la respuesta recibida.

Y podría profundizar más en el uso y manejo de SAP Gateway pero como punto de partida y explicación del OData es más que suficiente. Espero que sea de ayuda, en caso de necesitar más información no dudéis en dejar comentarios en este artículo.


Si te interesa, suscríbete al blog por email

Quiero aprender Python (Enséñame ChatGPT)

Hoy vamos a ganar superpoderes, y esto lo vamos a hacer enseñando como la Inteligencia Artificial puede ayudarnos en nuestro trabajo, a derribar barreras de conocimiento y a enfrentarnos a lo que no sabemos con garantías.

Imagen generada con Stable Diffusion instalado en mi PC, con el modelo epiCRealism con el prompt «A male consultant dressed as Superman is programming using a laptop in an office«

ChatGPT enséñame a programar en Python

Resulta que un día, al principio de empezar a usar ChatGPT, se me ocurrió ver si podía preguntarle a GPT cómo programar en Python. Lenguaje que no sabía ni cómo, ni con qué, ni donde se programaba. Solo tenía conocimiento del nombre y de que se usaba sobre todo para BigData y IA. Por lo tanto le pregunté a ChatGPT-4:

Por lo que, con solamente una frase y una consulta me da varias opciones. Instalo Python en mi PC y, como entorno de desarrollo en este caso voy a usar el Visual Studio Code ya que los otros ni me suenan. Lo de instalar bibliotecas adicionales lo iré haciendo en base a lo que necesite usar. Y los recursos, teniendo GPT, paso de ellos por ahora.

Hola Mundo

Una vez instalado, quiero empezar como se empieza a programar en todos los lenguajes de programación, con un Hola Mundo. Así que continúo preguntándole:

Más guiado imposible. Sin saber nada de Python, ¡Ya tengo mi primer programa en Python!. Que sí, que es una chorrada de programa, pero ChatGPT me ha guiado en como llegar a instalar lo necesario y a crear mi primer programa. Pero claro, esto es muy sencillo, vamos a complicarlo un poco.

Leer un PDF e imprimir el texto por pantalla

Ahora quiero un programa que, tomado un PDF de mi PC, sepa leerlo e imprimir su contenido en texto por pantalla. Le pregunto a ChatGPT:

Esto ya es más complejo, un programa que, usando la librería PyPDF2, lee un PDF y imprime su contenido por pantalla. En este caso voy a usar el PDF SAP S/4HANA for Customer Management – Feature Scope Description que contiene las funcionalidades de la parte de CRM de SAP S/4HANA. Al intentar la librería PyPDF2 tal y como comenta ChatGPT, ¡ZAS! ¡Primer error!.

Pero, no nos preocupemos, tenemos el amigo listo de la oficina al que preguntar. Sin cortarnos ni un pelo le pegamos todo ese error a ChatGPT:

Uso la primera opción para instalar la librería, usando «python -m pip install PyPDF2» funcionando correctamente. Por lo tanto prosigo con mi nuevo programa:

¡Zas! ¿Otro error? Pues hagamos lo mismo:

Me dice que cambie cosas, con los ojos tapados copio y pego y ejecuto, pero…

ChatGPT, otro error, pero no me cuesta nada repetir el proceso hasta que esto funcione:

Vuelvo a cambiar el código, vuelvo a ejecutar y:

Seguimos con la iteración con ChatGPT. Por ahora solo estamos copiando y pegando.

Vuelvo a copiar/pegar el nuevo código en mi programa del Visual Studio Code y ahora:

Toooooooooooooooooooma!!! ¡Ya nos está leyendo el PDF!

Resumen del texto extraído

Ahora vamos a complicarlo aún más y añadir la inteligencia artificial para que nos resuma el contenido extraído. Para ello usaremos la API de GPT, que puede sacarse de https://platform.openai.com/. Eso sí, cuando te das de alta tienes, creo unos 18$ de uso gratuitos, luego es de pago, yo tengo plan de pago y es independiente de ChatGPT. Es decir, por un lado pagas ChatGPT Plus y por otro el uso de la API.

Pero veo que me manda ese código sin la parte anterior de extraer de PDF, Además quiero refinar mi consulta, porque veo que el PDF usado tiene páginas que prácticamente no contienen información y que son portada, índice o disclaimers. Por lo tanto le digo:

Copio/Pego el código que manda ChatGPT. La clave API de GPT hay que sacarla de tu cuenta en platform.openai.com.

Ejecuto el código y….

Vamooooooooooooos!

Esquema de resumen

Ahora quiero que, además del resumen, genere un esquema con los puntos del documento.

Pero quiero verlo por colores que si no me quedo ciego:

Instalo la librería termcolor, copio/pego/ejecuto (cambiando la clave API y el PDF) el código y:

¡Otro éxito!

Guardar el resumen y el esquema en un Word

Ahora quiero ese resumen y ese esquema en un documento Word, no solo por pantalla que eso no es práctico. Tal cual se lo pido a ChatGPT:

Instalo la librería python-docx. Copio/Pego/Ejecuto (cambiando la clave API y el PDF) el programa y:

Me estoy cansando de poner cosas debajo del niño este

Crear un MP3 con el Resumen y Esquema leído

Ahora no quiero leer el word, quiero que alguien me lo lea. Por lo tanto le pregunto a ChatGPT si puedo hacerlo y cómo:

El resultado es:

Audio del resumen
Audio del esquema
¡¡Madre mía!!

Los audios son demasiado simples y robóticos, podría pedirle a ChatGPT si hay alguna otra alternativa gratuita o de pago. Pero vamos a otra cosa, ¿Le pedimos más cosas? ¡Claro que sí!

Generar una presentación Power Point

Quiero generar un Power Point directamente con los datos del esquema, que cada punto del esquema sea una diapositiva. Pues allá que voy que se lo pido:

Pero veo que el código VBA que me genera no es correcto en el apartado de desarrollador del Power Point así que le pido que tenga cuidado con los saltos de línea.

El resultado es este código VBA es el siguiente:

Y pegándolo en la parte de desarrollador de un powerpoint vacío y ejecutandolo:

Y dandole un diseño preconfigurado tenemos:

Mi Power Point en bruto

Esto es un ejemplo. Tengo más que he usado en mi día a día con Python (pulsación de teclas automáticas, Conexión con las APIs de aparatos de SmartHome, Preparación de certificación preguntando dudas a ChatGPT, Cambio de formato para exportar e importar datos entre dos aplicaciones, etc.) El límite está en tu capacidad de usar esta herramienta. A mi, me ha dado superpoderes y ya me ha ayudado en varias labores importantes.

Pero, eso no es aprender Python

Obviamente, esto no es aprender Python, pero ¿Quién lo necesita? sé programar en otros lenguajes, con lo cual tengo la mente estructurada para entender los procesos y la forma de entender un programa. Esto a mi me vale para hacer cajas negras de funcionalidad y usarlas y combinarlas para hacer el proceso deseado. Me da superpoderes, me da confianza y me quita el miedo a lo desconocido.

¿Crees que esto se podría considerar Low Code?

¿Quieres saber más sobre Inteligencia Artificial?

Low-Code / No-Code

Hoy voy a sentar las bases de algo que muchos de vosotros ya conocéis, incluso mejor que yo, y de lo que vamos a hablar más en profundidad en futuras entradas del blog.

El concepto de Low-Code/No-Code

La idea detrás del desarrollo Low-Code/No-Code es simple pero impactante: ¿por qué no hacer la creación de aplicaciones accesible para todos, independientemente de su nivel de habilidad técnica? El Low-Code y No-Code son enfoques de desarrollo de software que minimizan la necesidad de codificación manual.

El desarrollo Low-Code implica el uso de interfaces gráficas de usuario para construir aplicaciones, utilizando una pequeña cantidad de código escrito a mano. Por otro lado, el No-Code va un paso más allá, eliminando por completo la necesidad de codificación, permitiendo a los usuarios construir aplicaciones completas a través de interfaces de arrastrar y soltar.

Citizen Developer vs Professional Developer

El concepto de desarrollador se parte en dos cuando hablamos de soluciones Low-Code/No-Code. Aparece un nuevo tipo de desarrollador llamado Citizen Developer. Un Citizen Developer es un individuo que, aunque no posee una formación profesional en programación o desarrollo de software, utiliza herramientas y plataformas de desarrollo low-code o no-code para crear aplicaciones o mejorar los sistemas y procesos de software en su organización. Por otro lado un Professional Developer es lo que conocemos en el mundo TI de un desarrollador de software con amplios conocimientos técnicos. Esto no implica que un Professional Developer no pueda y deba usar soluciones Low-Code/No-Code. Al revés, su uso servirá para aumentar su rendimiento, productividad, y a gastar energías en los procesos realmente complejos e importantes.

Low-Code/No-Code en el Entorno SAP

En el mundo SAP, la adopción de estos enfoques ha estado ganando terreno. SAP ha lanzado varias herramientas y plataformas para apoyar el desarrollo Low-Code/No-Code. En 2021, SAP adquirió AppGyver, pionera en plataformas de desarrollo sin código que permiten a los usuarios sin conocimientos de codificación crear aplicaciones para uso web y móvil.

Posteriormente SAP creó las SAP Build Apps en SAP BTP que evolucionaron a partir de SAP AppGyver y otras tecnologías de SAP. SAP Build Apps añade capacidades adicionales de creación de aplicaciones para su uso en empresas que abordan las necesidades de autenticación, integración de datos y gestión del ciclo de vida. Ya hablaremos más adelante de SAP Build y todo su ecosistema.

Además, dentro del SAP Business Application Studio también tenemos opciones de usar soluciones de Low-Code para ayuda a los desarrolladores a ser más productivos.

Low-code/No-Code y la Inteligencia Artificial

SAP también ha estado trabajando en integrar el desarrollo Low-Code/No-Code con tecnologías emergentes, como la Inteligencia Artificial (IA) y el Machine Learning. Por ejemplo, SAP Build Process Automation permite a los usuarios automatizar procesos de negocio con un enfoque Low-Code, combinando RPA con IA y Machine Learning para crear soluciones inteligentes y escalables.

Low-code/No-Code en otras tecnologías (Microsoft)

Microsoft, uno de los principales proveedores de software y soluciones de desarrollo e implementación de procesos y sistemas de TI, está muy volcado en lo que a tecnología Low-Code/No-Code se trata (y de paso en Inteligencia Artificial también) para ello cuenta con su suite de Microsoft Power Platform que junto con aplicaciones como Power BI, Power Apps, Power Automate, etc. Proporciona un conjunto de aplicaciones muy potentes y con un enfoque low-code.

Esto es el presente amigos y amigas, no significa que esto haga de menos los méritos para ser un buen programador, es una herramienta más, como el chequeo de código al activar, el formateado automático o la gestión de versiones. Habrá que saber usarlo y adaptarse y, lo primero, es saber qué es y qué usos tiene.