Categoría: Empresarial

Categoría que agrupa sistemas de información empresariales

Hola Mundo en BPMS con BonitaSoft

Desarrollo desde cero un programa tipo Hola Mundo en BPMS con BonitaSoft, tendrás la posibilidad de sistematizar un proceso de compras sencillo y con este conocimiento incursionar en casos más complejos que requieran sistemas para soportar procesos.

El proceso que se diseñara en este tutorial será un proceso de compras con una decisión y sistematizado en BonitaSoft.

Si quieres aprender a programar en java sigue este link.

Si quieres aprender a programar frontend en VUE sigue este link.

1. Entorno BonitaSoft

BonitaSoft es un software categoría BPMS que nos permitirá no solo diagramar nuestro proceso usando la notación BPMN sino también ejecutar nuestro proceso en un entorno web basado en una bandeja de tareas, así mismo la data estará disponible en bases de datos estructuradas a fin de permitir la consulta y la analítica posterior.

Si quieres descargar bonitasoft gratuitamente sigue este link.

La siguiente imagen muestra el entorno de BonitaSoft el cual al ser un software libre esta basado en el popular entorno de desarrollo Eclipse.

Entorno de BonitaSoft
Figura 1. Entorno de BonitaSoft

2. Diagrama de proceso y configuración básica

El primer paso en la sistematización del proceso es crear un proyecto en BPMS que contendrá todas las configuraciones y parametrizaciones de nuestro proceso. Para ello debes seleccionar del menú de bonita la opción nuevo proyecto.

Nuevo proyecto BPMS
Figura 2. Nuevo proyecto BPMS

Posterior a ello, debemos crear nuestro diagrama de proceso, basta seleccionar un nuevo diagrama le puedes dar nombre en este momento o posteriormente renómbralo, tal como se muestra en la siguiente figura.

Nuevo diagrama de proceso
Figura 3. Nuevo diagrama de proceso

Para completar esta etapa se debe diagramar el proceso de compras como según la lógica mostrada a continuación. En este punto es importante anotar que las tareas del diagrama son humanas, es decir tendrán una interface gráfica a través de la cual el usuario interactúa. Puede ser necesario que en las propiedades de la tarea selecciones humana, pues a menudo BonitaSoft utiliza tareas automáticas por defecto.

Proceso de compras
Figura 4. Proceso de compras

3. Configuraciones de actores

El paso siguiente consiste en configurar los actores. Los actores permiten definir las personas o usuarios a quienes se les asignar las tareas. Lo primero es sobre el pool definir los actores que van a en nuestro proceso, BonitaSoft podría inferir esto a partir de los swimlane pero aquí es un paso obligatorio, además se debe indicar el actor que podrá iniciar el proceso en este caso es el solicitante.

Actores sobre el pool
Figura 5. Actores sobre el pool

Posteriormente y por cada Lane debe definirse el actor que será responsable, en este caso como tenemos un actor por cada Lane, debemos mapear los actores del pool al Lane según corresponda.

Definir actores sobre los Lane
Figura 6. Definir actores sobre los Lane

Los actores también deben verificarse en las tareas, en este caso basta con verificar en cada tarea que el actor definido sea el mismo del lane.

Verificar actores en tareas
Figura 7. Verificar actores en tareas

Finalmente, para completar el paso de los actores, resta configurar en uno de los ambientes que BonitaSoft preconfiguro la asociación de roles con personas. Esta asignación se realizará en el ambiente local y se utilizara nombres específicos de usuarios, sin embargo note que se pueden mapear grupos o membresías a los roles definidos en el pool.

Mapeo de usuarios parte 1
Figura 8. Mapeo de usuarios parte 1
Mapeo de usuarios parte 2
Figura 9. Mapeo de usuarios parte 2

Los usuarios pueden ser configurados desde la pestaña organizaciones, por defecto BonitaSoft crea una organización denominada ACME y varios usuarios con datos ficticios para usar.

Configuración por defecto de la organización ACME
Figura 10. Configuración por defecto de la organización ACME

4. Modelo de datos

El modelo de datos nos permitirá crear aplicaciones que capturan datos y se almacenan de forma estructurada en bases de datos, para este caso el modelo de datos será muy sencillo y permitirá también definir las interfaces gráficas de usuario.

Definiendo el modelo de datos
Figura 11. Definiendo el modelo de datos

El modelo de datos son solamente variables asociadas con tipos de datos, asegurate de crear los siguiente datos que se usaran en la sistematización.

Modelo de datos del proceso de compras
Figura 12. Modelo de datos del proceso de compras

Finalmente, se debe desplegar este modelo de datos para poder usarlo, las siguientes imágenes muestran en orden la validación y confirmación de la validación y el despliegue y confirmación del despliegue del modelo de datos.

Validación y despliegue del modelo de datos
Figura 13. Validación y despliegue del modelo de datos

Ya que tenemos un modelo de datos válido, podemos usarlo, y para ello debemos agregarlo al pool dando un nombre.

Agregado del modelo de datos al pool
Figura 14. Agregado del modelo de datos al pool

El siguiente uso que le daremos al modelo de datos será agregarlo a las diferentes tareas, en este punto seleccionamos el modelo de datos y elegimos las variables del modelo que queremos usar en cada tareas. Note que esto se debe repetir por cada tarea y que estas opciones aparecen en la pestaña contrato opción añadir de cada tarea, así mismo que durante este proceso algunos mensajes de confirmación aparecerán.

Selección del modelo de datos en una tarea
Figura 15. Selección del modelo de datos en una tarea
Selección de variables del modelo de datos para una tarea
Figura 16. Selección de variables del modelo de datos para una tarea

5. Configuración de decisiones

Las decisiones o compuertas se configuran según la norma BPMN en este caso de este tutorial utilizaremos una compuerta exclusiva y el flujo de secuencia “no” lo marcaremos por defecto, como se muestra en la siguiente imagen.

Configuración de la compuerta y de la decisión no
Figura 17. Configuración de la compuerta y de la decisión no

En cuanto al flujo de secuencia “si” se procederá a configurar una condición de tipo script y asociar a esta la variable del modelo de datos booleana que permite tomar la decisión.

Configuración de la decisión si
Figura 18. Configuración de la decisión si
Resultado de la configuración si
Figura 19. Resultado de la configuración si

5. Formularios de datos

Para la configuración de los formularios de las tareas podemos encontrarnos ante una gran complejidad, pero el asociar el modelo de datos y las variables a cada tarea simplifica el proceso. A continuación crearemos los formularios simplemente en la opción contratos seleccionando editar formulario, lo cual abrirá un editor de formularios que permite diseñar interfaces gráficas complejas que oculten campos, los agrupen o realicen lógicas programadas en javascript. Note que este editor de formularios esta en la web y que este es un paso que debemos repetir por cada tarea del modelo.

Creación de formularios para las tareas
Figura 20. Creación de formularios para las tareas
Editor de formularios de BonitaSoft
Figura 21. Editor de formularios de BonitaSoft

6. Ejecución del proceso

Para ejecutar el proceso debemos validarlo primero a fin de determinar que no se tengan errores.

Figura 22. Validación del diagrama

Una vez validado y sin errores se puede proceder a ejecutar en uno de los ambientes, recordemos que en este caso configuramos nuestro proceso de negocio en ambiente local y que estas opciones están disponibles estando seleccionado el pool del proceso a ejecutar.

Figura 23. Ejecución del proceso de negocio

En este punto debemos iniciar sesión con el usuario solicitante, aquí se anota que BonitaSoft inicia sesión automáticamente con Walter Bates, así que debemos cerrar sesión y abrirla con Daniela Angelo, así mismo todos los usuarios tienen el mismo password bpm, esto se puede cambiar en las configuraciones de los usuarios bajo el modulo de Organización.

Para iniciar un primer proceso debemos dar clic en el boton start en procesos.

Figura 24. Botón de inicio de proceso

Las tareas deben ser tomadas para su ejecución y ya en el menu principal de BonitaSoft web vamos a poder ver las diferentes tareas a medida que los procesos se van ejecutando.

Toma y ejecución de tareas
Figura 25. Toma y ejecución de tareas

El paso final en este tutorial sería ejecutar el proceso realizando un juego de roles es decir, iniciando sesión con cada usuario asignado al proceso y verificando que lleguen las tareas y especialmente que la decisión se tome correctamente.

7. Artículos de Interés

Introducción a BPMS Definiciones y Aplicaciones

Este artículo aprenderás los conceptos básicos de esta tecnología la Introducción a BPMS Definiciones y Aplicaciones, además de sus características conocerás algunos de los proveedores utilizados y usos típicos de esta tecnología a nivel empresarial.

Si quieres aprender a programar en java sigue este link.

Si quieres aprender a programar frontend en VUE sigue este link.

1. Definición básica de BPM, BPMN, BPMS y BPMM

Cuando empezamos a estudiar BPM nos encontramos con multitud de aplicaciones y profesionales que trabajan en estos conceptos, por ejemplo podemos encontrar un Ingeniero de Procesos que busca mejoras operativas o también equipos de calidad que desean documentar los procesos con estándares internacionales o también equipos de informáticos buscando sistematizar, automatizar o comunicar diferentes sistemas de información.

Para estas necesidades tan diversas BPM se constituye como una alternativa modera y muy utilizada por empresas de todos los sectores de la economía que buscan modernizar sus procesos, incluso aquellas que dan pasos hacía la Transformación Digital buscan metodologías y herramientas como estas para lograrlo.

En general, BPM significa Business Process Management y como tal es una metodología muy utilizada para documentar, analizar y sistematizar procesos, sin embargo comúnmente se le agregan más palabra a esta sigla y así encontramos:

  • BPMN: es la notación internacional y administrada por la OMG para la descripción de procesos de negocio.
  • BPMS: es la suite o software que permite a los ingenieros sistematizar, automatizar u orquestar procesos de negocios bajo la notación BPMN y haciendo uso de plataformas estándar.
  • BPMM: es la metodología que permite evaluar la madurez de una implementación BPM en una compañía bajo un modelo de capacidad y basado en 5 niveles muy similar al conocido CMMI.

Sigue los siguientes vínculos para consultar la norma BPMN en sus versiones más populares.

Version BPMN 2.0

Version BPMN 1.2

2. Sistemas y proveedores BPMS

Aunque existen muchos sistemas de corte BPM los módulos principales de estos sistemas son las siguientes:

Módulos de un BPMS
Figura 1. Módulos de un BPMS

Existen muchos proveedores de BPMS entre ellos las casas más grandes de Software en el mundo como IBM, Oracle u otro especializados en BPMS como Bizagi, BonitaSoft o ProcessMaker.

2.1. Características del entorno de modelamiento

  • Compatibilidad mínima con BPMN 1.2 hacia adelante
  • Módulo Nativo desarrollado por el fabricante
  • Posibilidades de portabilidad, exportación e importación de modelos
  • Modelamiento de coreografías y orquestación de procesos
  • Parametrización de modelos dentro del mismo entorno
  • Tecnología del entorno de modelamiento (Cliente)
  • Ergonomía del entorno de modelamiento
  • Gestión de configuración de los Modelos
  • Exportación de documentación de modelos (RTF, PDF, XML / BPEL)
  • Modelamiento de Reglas de Negocio
  • Validación de Errores de Modelamiento
  • Generador de formas para los procesos

2.2. Características del motor de WorkFlow

  • Grado de cobertura de elementos automatizados
  • Capacidad de respuesta (desempeño) del motor de workflow
  • Soporte del motor para ejecutar reglas de negocio
  • Arquitectura de tablas desplegadas en los procesos.
  • Capacidad del motor de ejecutar procesos en simultáneo
  • Capacidad del motor para controlar versiones en ejecución
  • Compatibilidad y portabilidad del código de modelos (BPEL)
  • Capacidad de integración del motor SOA / ESB / BRMS
  • Capacidad de balanceo de cargas del motor

2.3. Características de la bandeja de tareas

  • Ejecución Web / Móviles
  • Ergonomía de la bandeja de gestión de tareas
  • Semáforos para ejecución
  • Flexibilidad y personalización de alarmas
  • Trazabilidad gráfica de procesos
  • Motor de búsqueda para tareas
  • Visualización de versiones de procesos en ejecución

2.4. Capacidades SOA de un BPMS

  • Capacidad ejecutar y consumir Web Services
  • Capacidad de ejecutar Consultas a otros Sistemas
  • Agnóstico a la tecnologías de integración
  • Integración para inicio de sesión (LDAP)

2.5. Características de BPA y Simulación de un BPMS

  • Escenarios previos a la automatización
  • Análisis de comportamiento de variables críticas
  • Detección de la ruta crítica para modelos
  • Capacidad gráfica para ejecución de simulaciones
  • Gestión de Configuración para modelos
  • Uso de escenarios de medición en combinación con el BAM
  • Estadísticos disponibles para parametrizar
  • Análisis de escenarios

2.6. Capacidades de medición y BAM de un BPMS

  • Enfoque del entorno de medición (BI, OI, BAM)
  • Tecnologías en tiempo real (CEP)
  • Escalabilidad futura a Enterprise Decisión Management (EDM)
  • Generación de reportes dinámicos
  • Personalización de tableros de control
  • Extracción de datos de múltiples fuentes
  • Posibilidades de gráficos
  • Análisis de Datos
  • Generación de tendencias – análisis preventivos
  • Gestión de indicadores (acciones, seguimiento)

2.7. Capacidades adicionales de un BPMS

  • Gestión electrónica de Documentos
  • Manejo de escenarios personalizables para documentación
  • Capacidad de Perfilamiento
  • Capacidad de importar modelos desde otras fuentes
  • Mensajería (crear, enviar, recibir y leer mensajes)

3. Aplicaciones, proyectos y usos de BPMS

Algunas de las aplicaciones más importantes de los BPMS son aquellas que se centran en la sistematización de procesos de negocio que se realizan a través de papel o de forma muy incipiente con correos electrónicos. La sistematización, también puede conducir a un escenario donde exista un grado de automatización de tareas a través del uso de la capa SOA de un BPMS.

Otro uso muy importante de los BPMS es como capa de orquestación que permite a las organizaciones centralizar la comunicación entre los procesos en estos categoría de software.

En cuanto a la ejecución de proyectos en BPMS es muy importante considerar los siguientes items por parte del equipo del proyecto.

  • Establecer adecuadamente los equipos del proyecto
  • Establecer adecuadamente los tiempos
  • Gestionar el cambio
  • Realizar iteraciones comenzando con alcances pequeños y fáciles de concretar
  • Obtener el entendimiento del proceso en piso
  • Cuidar la duplicación de trabajo
  • Tomar el tiempo suficiente para el correcto desarrollo de las integraciones
  • Gestionar adecuadamente los requisitos y sus cambios

4. iBPMS

En los cuadrantes mágicos de Gartner se ha acuñado un termino denominado iBPMS donde se diferencian aquellos BPMS más avanzados del resto, haciendo la letra “i” alusión a inteligente, y aunque en la lista siguiente se muestran las características que debe tener un iBPMS la principal radica en la habilidad de manejar lo procesos al vuelo, es decir ejecuciones del proceso que ya han iniciado se puedan versionar para incorporar cambios que los especialistas de proceso requieran, lo anterior sin necesidad de volver a empezar las ejecuciones, cuestión que en la práctica en ocasiones no es posible.

Una BPMS inteligente es una categoría avanzada de las tecnologías diseñadas para BPM. Es la evolución natural del reciente mercado de BPMS, en donde se hace más énfasis en dar soporte a sistemas e inteligencia humana de los procesos de negocio más robustos. Por muchos años, en muchas ofertas (no en todas) de BPMS se han incluido capacidades como la simulación, la optimización y poder lograr una visión del rendimiento de los procesos. Los iBPMS modernos han agregado un soporte mejorado para la colaboración humana, integración con redes sociales, acceso a través de móviles a los procesos y toma de decisiones más analíticas y en tiempo real.

La siguiente es una lista de las principales características de los iBPMS.

  • Motor de Orquestación de Procesos
  • En vuelo y no estructurados
  • Entorno de composición gráfico basado en modelos
  • Apps heterogéneas y portales
  • Manejo de Contenido
  • ECM
  • Interacciones Humanas
  • Soporte multicanal
  • Process Intelligence y Business Activity Monitoring (BAM)
  • Analítica bajo demanda
  • Procesamiento de reglas de negocio
  • Reglas de negocio complejas

5. Artículos de Interés

Robot para diligenciar encuestas con UIPath

Este artículo muestra un uso más avanzado de UIPath que permite interactuar con páginas web, el desarrollo será un Robot para diligenciar encuestas con UIPath, aprenderás a usar muchas de las características de este sistema que permitirán hacer un uso en casos más reales y aplicaciones empresariales.

Si quieres aprender a programar en java sigue este link.

Si quieres aprender a programar frontend en VUE sigue este link.

1. Archivos necesarios para ejecutar este robot

Para este robot vamos a requerir un archivo tipo csv que son archivos separados por coma o por punto y coma, en este caso será punto y coma y con dos columnas que son el nombre y el número de identificación de la persona. Este archivo se puede construir fácilmente en Excel y guardarlo como CVS, como tal es un archivo de texto por lo cual se puede abrir en block de notas para constatar el contenido.

Se recomienda que dejes al menos tres filas para poder apreciar la ejecución del robot.

Además del archivo, para este Robot para diligenciar Encuestas con UIPath será necesario preparar una encuesta digital a través de un formulario, en este tutorial se estará usando Google Forms, la encuesta entonces debe generarse de la siguiente manera.

Encuesta a diligencia
Figura 1. Encuesta a diligencia

2. Actividades que se usarán en este robot

En este robot usaremos las actividades explicadas en el robot de manipulación de archivos que se encuentra en el siguiente vínculo:

Robot para manipular archivos

Adicionalmente se utilizaran las actividades para manipular el navegador para lo cual es necesario que se tenga habilitada la extensión del navegador de tu preferencia, en este caso se estará usando Google Chrome.

3. Robot RPA para diligenciar encuestas con UIPath completo

El robot completo se aprecia en las siguientes imágenes en las cuales se explica el paso a paso de su construcción.

Este Robot para diligenciar encuestas con UIPath va a requerir leer el archivo CSV que creamos con los datos que llevaremos a la encuesta online. En esta actividad es importante revisar la parametrización del carácter que separa las columnas en el archivo CSV, como se indico habitualmente es la coma pero en este caso se utilizará punto y coma, adicionalmente se indica que el archivo tiene encabezado por lo cual la primera fila tiene la información de los nombres de las columnas.

En esta misma imagen y similar al robot de archivos se realiza un ciclo por cada una de las filas que contiene el archivo y se utiliza la actividad de manipular el navegador para abrirlo con la URL apuntando a la encuesta que previamente creamos.

Con esto la ejecución del robot lee el archivo, almacena su contenido en una variable tipo tabla y por cada fila abre el navegador a fin de, posteriormente diligenciar la encuesta.

Lectura de datos y ciclo
Figura 2. Lectura de datos y ciclo

El segundo paso en la construcción de nuestro robot consiste en escribir en los campos de nombre y tipo de identificación, la información que vamos a escribir esta en la tabla de datos leída del archivo y para lo cual se usa una instrucción como la siguiente: fila(“nombre”).ToString.

Además debemos configurar en que zona de la pantalla queremos escribir, lo cual se ilustra en los pasos siguiente y que deben ser repetidos por cada campo que deseemos escribir.

En la figura 2, adicionalmente se aprecia que después de escribir en el campo de identificación y de escribir en el campo nombre, nuestro robot hará clic en el botón para enviar el formulario y completar la encuesta. Recuerde que esta actividad se hará por cada una de las filas en el archivos de datos y que para el momento se tiene almacenado en una variable de tipo tabla.

Escritura en los campos y clic para diligenciar encuesta
Figura 3. Escritura en los campos y clic para diligenciar encuesta

Para seleccionar un elemento de una interface grafica de usuario siempre tendrás a la mano la opción de indicar el objetivo en pantalla. Esta opción permitirá seleccionar un elemento en pantalla y para el caso de una página web la selección corresponde a un elemento HTML del DOM de la página que se puede apreciar en la propiedad objetivo (target) de la actividad.

Para efectos del clic en el botón se procede de la misma manera.

Seleccionar elemento en la interface gráfica de la página web
Figura 3. Seleccionar elemento en la interface gráfica de la página web

La figura 4, muestra un ejemplo al momento de seleccionar un componente en la pantalla, esta ventana tiene todas las opciones de selección y permite mucha flexibilidad a la hora de seleccionar elemento, por ejemplo puede esconder la interface de selección durante unos segundos, esto es particularmente útil si necesitamos interactuar con elementos como tooltips o combos de selección.

Ventana para la selección de elemento gráfico
Figura 4. Ventana para la selección de elemento gráfico

Finalmente en el proceso de selección, pueden aparecer componentes en rojo y en amarillo, el primero indica que la selección ha sido invalida y el segundo que se encontró un elemento repetido, esto sucede porque UIPath no tiene forma de diferenciar entre un elemento y el otro y para poderlo distinguir debemos con el mouse anclar el campo de otro elemento de forma que el componente de la página que estemos seleccionando termine siendo único.

Selección única de componente
Figura 5. Selección única de componente

4. Ejecutando el robot

Para ejecutar el robot como es costumbre, solo basta con dar clic al botón de ejecutar, recordar que si el robot se hizo en el mismo archivo principal se puede ejecutar el proyecto o en su defecto elegir la opción ejecutar este archivo si lo tientes abierto. El resultado será el nuevo archivo y los mensajes de texto en pantalla.

Ejecución del robot
Figura 6. Ejecución del robot

5. Artículos de Interés

Un robot RPA para manipular archivos con UIPath

En este artículo aprenderás a crear Un robot RPA para manipular archivos con UIPath, este robot te permitirá conocer algunas de las características y actividades o tareas más utilizadas en UIPath para la automatización de procesos.

Si quieres aprender a programar en java sigue este link.

Si quieres aprender a programar frontend en VUE sigue este link.

1. Actividades necesarias para el robot

El propósito de este robot es manipular algunos archivos de texto con UIPath que estén ubicados en una carpeta, revisar su contenido y armar otro archivo de texto que junte el contenido de todos los archivos en uno solo, en caso que uno de los archivos este vacío se sacará un mensaje en pantalla indicando esta situación ya que se considera que no debe haber archivos en blanco y en tal caso se requiere intervención humana.

2. Creación de archivos de ejemplo

Antes de proceder a crear el robot RPA para manipular archivos con UIPath debemos preparar algunos archivos para trabajar con ellos. Cada uno de los archivos puede tener algún contenido y algunos de ellos estar vacíos.

Archivos de ejemplo
Figura 1. Archivos de ejemplo

3. Robot completo

En la siguiente imagen se muestra la primera parte del robot que lee archivos y los muestra en pantalla, en este punto es importante observar que se utiliza la actividad de asignar para dar valor a una variable y concretamente se obtiene un arreglo de cadenas de texto (string) con las rutas absolutas de los archivos de una carpeta, y para ello se usa la instrucción Directory.GetFiles.

Posteriormente se usa un ciclo tipo para (for) que se ejecutara por cada archivo en la carpeta, luego se leerá el archivo en la ruta dada para finalmente mostrarlo en pantalla, esto último ayudará con la depuración o la verificación que nuestro robot se este ejecutando bien.

filestxt1
Figura 2. Lectura de archivos

La segunda parte de este robot toma una decisión en función del texto leído del robot, en este caso si el texto del archivo esta vacío se muestra un mensaje en pantalla en caso contrario se agrega el contenido de este archivo a otro.

Aquí es importante ver que la decisión se debe tomar con operadores lógicos que devuelvan verdadero o falso a fin de poder tomar dicha decisión.

El archivo de resultado es un txt el cual se va formando con el contenido de cada uno de los archivos leídos en la carpeta.

filestxt2
Figura 3. Condicional en UIPath

4. Ejecutando el robot RPA UIPath

Para ejecutar el robot como es costumbre, solo basta con dar clic al botón de ejecutar, recordar que si el robot se hizo en el mismo archivo principal se puede ejecutar el proyecto o en su defecto elegir la opción ejecutar este archivo si lo tientes abierto. El resultado será el nuevo archivo y los mensajes de texto en pantalla.

Ejecución del robot
Figura 4. Ejecución del robot

5. Artículos de Interés

Hola Mundo usando UIPath RPA

En este artículo aprenderás lo básico de RPA y podrás hacer una aplicación tipo Hola Mundo usando UIPath RPA como software base de automatización, aprenderás las tareas básicas y a dominar el entorno de UIPath.

Si quieres aprender a programar en java sigue este link.

Si quieres aprender a programar frontend en VUE sigue este link.

1. Qué es UIPath

UIPath es una herramienta categoría RPA y calificada como líder mundial por Gartner y Forrester, que además de tener versión comunitaria para pequeñas empresas o pequeños grupos es muy fácil de aprender y de utilizar.

UIPath tiene dos versiones Studio y StudioX siendo esta segunda una versión más simple para usuarios de negocio que busquen automatizaciones sencillas, de otra parte la versión Studio es más completa y cuenta con mayor cantidad de comandos y funcionalidades.

Para usar UIPath debes descargarlo creando una cuenta que te dará acceso al portal llamado Orquestador desde el cual no solo se descarga el instalador sino también se pueden programar las ejecuciones de los robot o almacenar información sensible en forma de assets o activos. El siguiente link podrás crear la cuenta de UIPath gratuitamente.

Descarga UIPath

2. El entorno de UIPath

La siguiente imagen muestra el entorno general de UIPath. A este punto se llega luego de crear un primer proyecto seleccionando la opción proceso.

Aquí se aprecia varios puntos de la interfaz gráfica de UIPath, siendo los más importantes:

  • Menu: este es un menú muy simple con solo tres pestañas donde se agrupan todas las funcionalidades de UIPath.
  • Pestaña proyecto: aquí se puede visualizar el proyecto en curso junto con todos sus archivos.
  • Actividades: esta pestaña muestra toda las actividades o tareas que un robot puede llegar a realizar.
  • Snippets: son pequeños fragmentos de robot que permiten ser reutilizados.
  • Zona central: es aquella donde se arrastran las actividades y se construyen los robot.
  • Propiedades: son todos los atributos de cada una de las actividades que realiza un robot.
  • Salida: muestra toda la información de la ejecución de un robot.
Entorno general de UIPath
Figura 1. Entorno general de UIPath

En este punto es importante comprender que un robot en UIPath corresponde a un archivo y el mismo puede tener un elemento inicial que o bien es una secuencia o bien es un workflow, aunque los dos son equivalente el segundo mostrará una representación más gráfica especialmente de las decisiones.

Otro punto importante es que ejecutar un robot va a requerir que el usuario haya iniciado sesión y conectado a la cuenta del orquestador con el que se descargó la aplicación, así mismo la ejecución permite la depuración, es decir la ejecución paso a paso para la inspección de variables y la detección de errores.

3. Creación de un proyecto de UIPath

Para la creación de un proyecto basta con seleccionar la opción proceso en el menu HOME de UIPath, darle un nombre, ubicación y si se quiere una descripción al proyecto.

Este proyecto contendrá uno o varios archivos y cada uno de ellos representará un robot que luego puede ser ejecutado en las máquinas destinadas para ello.

Creación de Proyecto UIPath
Figura 2. Creación de Proyecto UIPath

4. Cuadro de mensaje y aplicación Hola Mundo UIPath

Este es el primer proyecto de UIPath y es bastante simple, basta con arrastrar un cuadro o bandeja de mensajes sobre el lienzo principal de UIPath y configurar la tarea con un texto (que se debe escribir entre comillas dobles) el cual se quiera mostrar en pantalla. Este texto también puede construirse con variables o con operaciones entre textos como la concatenación.

 Hola Mundo con UIPath
Figura 3. Hola Mundo con UIPath

El resultado de la ejecución del robot hola mundo se muestra en la siguiente imagen.

Ejecución de Hola Mundo
Figura 4. Ejecución de Hola Mundo

5. Lectura de datos del usuario en UIPath

Si se quiere hace un robot un poco más elaborado que el simple robot Hola Mundo, se puede pedir al usuario que introduzca su nombre a fin que el sistema lo solicite y posteriormente se pueda almacenar el resultado introducido por el usuario en una variable que luego sea almacenada y concatenada en la actividad anterior.

Para las variables se tiene una pestaña específica que muestra su nombre, tipo (naturaleza de la información), su valor inicial y su ámbito (que permite saber en qué tareas es visible una variable).

Las variables se pueden crear de muchas formas, entre ellas esta:

  • En los campos de salida de los atributos de las actividades dando click derecho crear variable.
  • En los campos de salida de los atributos de las actividades presionando ctrl+k.
  • Directamente en la pestaña de variables.

Observe que las actividades se encadenan en secuencias de forma que la ejecución del robot sigue este flujo o secuencia, así mismo que la ejecución tiene dos posibilidades y es ejecutar un archivo puntal o ejecutar el proyecto, en la segunda opción el proyecto iniciará la ejecución en el archivo marcado como main o en negrita en la lista de archivos del proyecto.

Otro aspecto importante a considerar en la ejecución de un robot es que como cada archivo es un robot, un robot puede llamar a otro y terminar dividiendo la complejidad de un gran robot en partes más pequeñas y manejable de parte del desarrollador del robot.

Robot de lectura de datos
Figura 5. Robot de lectura de datos

El resultado de la ejecución del robot que lee datos del usuario se muestra en la siguiente imagen.

Ejecución Lectura de Datos 1
Figura 6. Ejecución Lectura de datos 1
Ejecución Lectura de Datos 2
Figura 7. Ejecución Lectura de Datos 2

6. Artículos de Interés

Que es RPA Aplicaciones y Usos

Entre las tecnologías que han aparecido en las empresas recientemente se encuentra la robotización, este artículo aborda Que es RPA sus Aplicaciones y Usos más comunes y cómo esta tecnología está cambiando el trabajo de millones de personas.

Si quieres aprender a programar en java sigue este link.

Si quieres aprender a programar frontend en VUE sigue este link.

1. Que es RPA

Es la automatización de flujos de trabajo actuales que a través de robots ayudan a reducir el trabajo humano. Esta tecnología se fundamenta en que existen muchos procesos de carácter repetitivo y con muy poco valor agregado desde el punto de la Inteligencia Humana, por lo cual estos trabajo que a menudo no requieren decisiones son fáciles de automatizar con herramientas de este tipo, incluso aquellos que pueden requerir decisiones son susceptibles de automatizar.

Ahora el auge que ha tenido RPA es que automatiza las actividades desde el front o las interfaces de usuario de las aplicaciones en lugar de hacerlo en el backend donde operan algoritmos y servidores. Lo anterior tiene tanto cosas positivas como negativas que deben considerarse en el momento de implementar un robot y que se abordarán más adelante en este artículo.

RPA significa Automatización de Procesos Robóticos.

Robotic: replican las acciones del trabajo de un humano.

Process: secuencia de actividades significativas que producen valor.

Automation: cualquier trabajo hecho por un robot sin intervención humana.

Significado de RPA
Figura 1. Significado de RPA

2. Impacto de RPA en el trabajo y la economía

Algunos estudios muestran que para la década del 2020 – 2030 RPA se posicionará como una de las tecnologías clave y que la posibilidad de automatización de procesos traerá consigo un fuerte impacto en el trabajo y la economía, por ello cada vez más profesionales buscan capacitarse en este tipo de soluciones tecnológicas.

Impacto de RPA en el trabajo
Figura 2. Impacto de RPA en el trabajo. Crédito Xataka.

Este gran impacto se dará especialmente porque RPA permite la automatización de las interacciones humanas con los sistemas de información a través de sus GUI (Graphical User Interface) con lo cual gran cantidad de las actividades operativas que se han construido para realizar por parte de humanos en los sistemas de información serán automatizadas, incluso aquellas que tienen algún grado de decisión o de inteligencia se podrán automatizar disminuyendo en gran medida la actividad operativa y el día a día de los trabajadores.

Lo anterior no implica que se vayan a reducir a cero, pero sí en gran medida, los trabajos operativos tienen sus días contados en el mundo digital moderno.

3. Factores críticos en una solución RPA

Aunque pueden haber muchos factores críticos que impliquen el éxito de una solución RPA a continuación se recopilan algunos de los más importantes, y se incluyen algunos TIPS para los proyectos RPA.

  • Escalabilidad: esta caracteristicas implica que RPA debe poder crecer o decrecer en función de la demanda y de forma casi instantánea, esto es algo que no se puede lograr con equipos humanos.
  • Velocidad: la velocidad de ejecución de un proceso o una actividad contrastada con su ejecución humana debe ser mayor.
  • Confiabilidad: un robot debe ser confiable y su actividad debe ser repetible, es decir debe ser confiable, muchas veces esto también depende de otros factores u otros sistemas de información por lo cual el robot debe ser resiliente a fallos o caídas de otros sistemas.
  • Simpleza: este concepto aplica a casi todas las tecnologías que se construyan, un software o sistema simple será más administrable y será fácil y conveniente su mantenimiento, por lo cual las zonas de complejidad deben encapsularse o redefinirse.
  • Inteligencia: un robot debe agregar cierto grado de inteligencia que permita realizar tareas humanas sencillas y lograr así un mayor grado de automatización.
  • Clase empresarial: como la robótica aplica sobre todo a nivel empresarial, los RPA deben contar con características como soporte y respaldo sobre lo cual se deposite la operación de una empresa.

Cuando desarrolle proyectos RPA siempre tenga en cuenta automatizar aquellas actividades que agreguen valor, además que siempre es mejor comenzar con alcances pequeños e ir creciendo sobre una base funcional a intentar implementar soluciones muy grandes que normalmente cuando estan listas el proceso ya es diferente.

4. Aplicaciones y usos de RPA

Algunas de las aplicaciones más importantes para los software tipo RPA incluyen:

  • Integraciones: las integraciones de aplicaciones se puede realizar a través del backend con tecnologías como SOAP y REST y el paradigma SOA, sin embargo con RPA se puede realizar en el front, con resultados en tiempos de construcción mucho mejores que con otras alternativas, además de no requerir desarrollo de software en ambas partes.
  • Automatización de trabajo repetitivo: esta situación es muy común en todas las organizaciones, y realmente aportan poco valor, aunque son actividades necesarias en la ejecución de los procesos, estas actividades son automatizables con RPA.
  • Ayudas al trabajador: en ocasiones los trabajadores requiere hacer actividades en sus procesos con alcances muy definidos pero muy operativas, el alcance completo y las actividades que requieren mayor inteligencia seguirán realizadas por los humanos pero con ayuda de RPA para los alcances operativos.
  • Registros y manejo de grandes volúmenes de datos: este es un ejemplo de casos comunes que requieren de tareas repetitivas pero a menudo no tan frecuentes, en estas situaciones RPA puede servir de solución.

5. Productos RPA comerciales

Algunos de los productos comerciales más usados en el mundo en cuanto a RPA se refiere son: UIPath, Automation Anywhere y BluePrism.

Estos tres proveedores son los líderes en los diferentes estudios como el Cuadrante Mágico de Gartner o la Ola Forrester.

UIPath
Figura 3. UIPath
Automation Anywhere
Figura 4. Automation Anywhere
Blue Prism
Figura 5. Blue Prism

6. Artículos de Interés

Principios de la Arquitectura Orientada a Servicios SOA

Este artículo compila los Principios de la Arquitectura Orientada a Servicios SOA màs importantes, incluye las referencias a material oficial explicando en detalle cada principio.

Si quieres aprender a programar en java sigue este link.

Si quieres aprender a programar frontend en VUE sigue este link.

1. Manifiesto SOA

El manifiesto SOA es una serie de principios desarrollado por un grupo de profesionales y especialistas en el tema que encontraron la necesidad de describir correctamente en términos de principios las buenas prácticas que los Arquitectos SOA deben cumplir a fin de lograr la adopción SOA con las mejores características.

En las siguientes secciones se abordarán estas buenas prácticas y principios.

Para conocer el manifiesto SOA completo siga este vínculo.

Algunos de los principios fundamentales que se deben considerar en el momento de realizar una Arquitectura SOA son:

  • Los servicios deben ser reusables.
  • Los servicios deben proporcionar un contrato formal.
  • Los servicios deben tener bajo acoplamiento.
  • Los servicios deben permitir la composición.
  • Los servicios deben de ser autónomo.
  • Los servicios no deben tener estado.
  • Los servicios deben poder ser descubiertos.

Una palabra que se usará mucho en las siguientes secciones será servicio y aquí servicio puede referirse a un servicio web pero en general se debe entender como una capacidad que los sistemas ofrecen para realizar alguna tarea, tenga esto en mente cuando lea las siguientes secciones.

2. Servicios y contratos

Cuando un servicio es implementado como un Servicio Web, el contrato del servicio puede estar compuesto por una definición WSDL, múltiples definiciones de esquemas XML, políticas, y documentos complementarios, tal como un ANS.

Contratos de servicios
Figura 1. Contratos de servicios

De forma similar, los contratos deben estar catalogados en inventarios que hagan fácil su ubicación y determinar sus características y usos. Una buena forma de inventariarlos es por proyectos, como se muestra en la siguiente figura, sin embargo debe considerarse la conveniencia de tener diferentes dimensiones para catalogar como aplicaciones o módulos o grupos de funcionalidad.

Inventarios de servicios
Figura 2. Inventario de servicios

Este Principio de la Arquitectura Orientada a Servicios SOA, que impulsa que los servicios tengan contratos impulsa el enfoque del “contrato primero” para la entrega del servicio, por el cual los contratos se desarrollan de forma personalizada (antes del desarrollo de la lógica del servicio) de acuerdo con los estándares de diseño que aplican a todos los servicios dentro de un inventario dado de servicios.

Principio del contrato primero
Figura 3. Principio del contrato primero

3. Centralización de servicios

Este Principio de la Arquitectura Orientada a Servicios SOA asegura que los consumidores tengan un único punto de acceso a la capa de lógica, de esta manera se asegura que los consumidores estén llegando a la versión correcta y publicada del servicio y su contrato, por lo cual la documentación también es importante centralizarla.

Centralización de servicios
Figura 4. Centralización de servicios

4. Acoplamiento de servicios

En general los servicios se acoplan cuando se usan y esto puede dar lugar a un acoplamiento positivo o negativo y esto último tiene que ver con el impacto que se genera en los consumidores especialmente cuando existen cambios.

La siguiente imagen resume los tipos de acoplamiento, su generación y características como Principio de la Arquitectura Orientada a Servicios SOA.

Acoplamiento de servicios
Figura 5. Acoplamiento de servicios

5. Ocultamiento de servicios

Este Principio de la Arquitectura Orientada a Servicios SOA aboga por el ocultamiento deliberado de información del servicio, de tal forma que una mínima cantidad de información sobre el servicio es accedida por el mundo exterior.

Ocultamiento de servicios
Figura 6. Ocultamiento de Servicios

6. Control de acceso a servicios

Los procedimientos de control de acceso son un Principio de la Arquitectura Orientada a Servicios SOA, por consiguiente se pueden convertir en un requerimiento, el cual necesitaría ser orientado sobre un nivel organizacional, a través de la introducción de procesos nuevos o modificados.

Control de acceso
Figura 7. Control de acceso

7. Composición de servicios

La aplicación de este Principio de la Arquitectura Orientada a Servicios SOA puede convertir, efectivamente, a un servicio en una “caja negra”, donde la única información que esté disponible acerca del servicio es la que está publicada en su contrato.

Como resultado de este principio, los diseñadores del programa consumidor del servicio puede no ser conscientes que un servicio está componiendo a otros.

Esto coloca un gran énfasis en la fiabilidad de un servicio (lo cual también plantea cuestiones en cuanto a lo que debería publicarse en los ANS del servicio).

Composición de servicios
Figura 8. Composición de servicios

8. Reutilización de servicios

Dentro de la orientación de servicios y como Principio de la Arquitectura Orientada a Servicios SOA, la reutilización representa una característica primaria y central del diseño que esta ligada a la meta de alcanzar un ROI. Proporcionar los servicios como recursos empresariales reutilizables se relaciona con el patrón de diseño Centralización de la lógica.

Figura 9. Reutilización de servicios

9. Autonomía de servicios

La autonomía de los servicios individuales es especialmente importante para la efectividad de las composiciones del servicio. Debido a que un servicio que compone a otro automáticamente pierde autonomía, el nivel de autonomía entonces también depende de la composición de servicios.

Autonomía de servicios
Figura 10. Autonomía de servicios

10. Artículos de Interés

Servicios Web e Integración entre Aplicaciones

Este artículo aborda los Servicios Web como mecanismo fundamental para la Integración entre Aplicaciones, además establece los protocolos y lenguajes fundamentales utilizados por los profesionales para lograr el objetivo que los sistemas se comuniquen entre si.

Si quieres aprender a programar en java sigue este link.

Si quieres aprender a programar frontend en VUE sigue este link.

1. Definición de Servicios Web

El término “servicios web” se refiere a una tecnología que permite que las aplicaciones se comuniquen en una forma que no depende de la plataforma ni del lenguaje de programación. Un servicio web en escencia agrega una capacidad a las aplicaciones para que las mismas interactuen.

Un servicio web describe un conjunto de operaciones accesibles por la red a través de mensajería como XML (aunque no necesariamente sea la única) y  usa protocolos (como HTTP) con el objetivo de describir una operación para ejecutar  acciones o datos para intercambiar información con otro servicio web.

Servicios Web
Figura 1. Servicios Web

Por lo tanto, la finalidad de los Servicios Web son entre otras, las siguientes:

  • Proporcionar mecanismos de comunicación estándares entre aplicaciones, que interactúan entre sí.
  • Proporcionan interoperabilidad y extensibilidad para el intercambio de información entre aplicaciones.

Cuando los Servicios Web se agrupan resulta el concepto denominado API (Application Programming Interface) que permite referirse a todas las capacidades de comunicación que tiene una aplicación con el mundo externo.

En la misma API se definen muchos conceptos que ayudan a la administración, uno de los clave es el versionamiento que permite evolucionar el API sin necesidad de cambiar todos los clientes que consumen en un mismo momento.

2. Ciclo de vida de un Servicio Web

Teniendo presente que un Servicio Web es expuesto por una aplicación y consumido por otra, se da un ciclo de vida en función de los cambios que se produzca, este ciclo de vida se ilustra en el siguiente gráfico.

Ciclo de vida de los Servicios Web
Figura 2. Ciclo de vida de los Servicios Web

3. Lenguajes de intercambio de información XML, JSON, Binario

En general, el intercambio de información se da en algún tipo de formato que la codifique, el formato que primero se puede establecer es el binario pero este implicaría que la interpretación de información tenga un estándar definido, incluso que los sistemas de información se hubiesen programado con un mismo lenguaje para facilitar la interpretación, como lo anterior no ocurre, es decir un mismo lenguaje de programación y estandarización entre sistemas de información, se requiere formatos como XML y JSON.

A continuación se listan algunas características de estos formatos y se muestra una gráfica de ejemplo de cada uno de ellos.

  • El lenguaje extensible de marcado (XML) y JSON (JavaScript Object Notation) permite el modelamiento en un formato legible por el humano.
  • XML como tal es tan potente que permite desde el modelamiento de bases de datos hasta la configuración de sistemas de información, además sirve como superconjunto para otros formatos como HTML muy utilizado en páginas web.
  • JSON es un formato alternativo y similar a XML para representar información más fácil de procesar para una máquina e igualmente sencillo de leer para un humano.
  • En general JSON ofrece menor overheading que XML, es decir menos información para describir cada parte del dato lo cual lo hace mejor para transmisión por redes de datos y procesamiento de máquina.
XML y JSON
Figura 3. XML y JSON

4. Protocolo SOAP

Se trata de un protocolo basado en XML, que permite la interacción entre aplicaciones y a la vez tiene la capacidad de transmitir información compleja. Puede transmitir información a través de HTTP, SMTP, u otros.

El protocolo SOAP (Simple Object Access Protocol) permite la comunicación entre diferentes sistemas intercambiando paquetes formados de forma específica.

El mensaje SOAP está compuesto por:

  • envelope (sobre)
  • header  (cabecera)
  • body (cuerpo)
Paquete SOAP
Figura 4. Paquete SOAP

El protocolo SOAP utiliza un estándar denominado WSDL (Web Service Description Language) para definir las operaciones de un servicio web así como la información que el servicio recibe y la que entrega. La imagen siguiente muestra el detalle técnico de como se encuentra descrito una operación dentro de un servicio web y este a su vez donde se encuentra dentro del XML descrito por el WSDL.

WSDL y las operaciones descritas
Figura 5. WSDL y las operaciones descritas

Para mayor claridad considere que cuando nos referimos a un Servicio Web este puede conformarse por diferentes acciones a realizar cada una de ellas denominada operación (en términos de programación puede llamarse también métodos o funciones) por lo cual el WSDL describe todas estas operaciones del servicio web, note además que cada operación puede tener datos de entrada y salida que son descritos en el mismo WSDL.

Así como existe WSDL, en SOAP se define el concepto de UDDI (Universal Description, Discovery and Integration) son las siglas del catálogo de servicios cuyo registro se hace en XML. UDDI es una iniciativa industrial abierta enfocada en el contexto de los Servicios Web.

UDDI es por tanto un repositorio donde se almacenan los diferentes WSDL que expone una aplicación a fin que sus servicios web puedan ser descubiertos de forma programatica.

UDDI
Figura 6. UDDI

Para consumir un servicio web SOAP se requiere un poco de programación o utilizar un cliente como SOAPUI que permite armar los XML de datos y enviarlos a los servicios web.

Para descargar SOAP UI siga este enlace.

5. Protocolo REST

REST significa “REpresentational State Transfer”, cuya traducción es: “transferencia de representación de estado” y es un patrón de diseño para la implementación de servicios web que utiliza HTTP y en general JSON y no requiere un envelope como el caso de SOAP lo cual mejora el rendimiento sustancialmente.

La palabra clave de REST es que un servicio REST no tiene estado (es stateless), lo que quiere decir que, entre dos llamadas, el servicio pierde todos sus datos. Esto es, que no se puede llamar a un servicio REST y pasarle unos datos (p. ej. un usuario y una contraseña) y esperar que los “recuerde” en la siguiente petición.

REST se ha vuelto muy utilizado por su facilidad de implementación y consumo y hoy día se vuelve un estándar para diseño de aplicaciones y sus API.

Para consumir servicios web REST basta usar el navegador para peticiones tipo GET o para operaciones más complejas puede usar clientes como postman.

Si desea descargar postman siga este link.

6. Protocolo GraphQL

De forma más reciente se tiene GraphQL, que es similar a REST o SOAP sin embargo permite obtener exactamente lo que se necesita, este lenguaje creado por Facebook se encuentra muy orientado al consumo de información por parte del frontend de las aplicaciones, sin embargo también es útil para la integración entre aplicaciones.

Este lenguaje permite realizar las consultas y especificar la data almacenada en bases de datos, con lo cual resulta en aplicaciones muy eficientes y rápidas de construir.

7. SOAP vs REST

Algunas de las consideraciones que debe tener en cuenta cuando hable de SOAP y REST, son:

  • Lenguajes de programación: PHP, Java, .NET, Ruby, Python, etc
  • Intercambios de información: XML, JSON
  • Protocolos: SOAP, REST
  • Exposición de servicios: UDDI
  • Contratos: WSDL, WADL
Comparativa SOAP y REST
Figura 7. Comparativa SOAP y REST

8. Artículos de Interés

SOA Arquitectura Orientada a Servicios

Las Arquitecturas Orientadas a Servicios SOA constituyen un paradigma que si bien no es nuevo, si ha estado vigente durante la revolución informática. Este concepto ha sido estudiado y se ha buscado la forma de implementarlo por muchas empresas a fin de guiar la forma en que se organizan los sistemas de información en una empresa, este artículo explora este concepto.

Si quieres aprender a programar en java sigue este link.

Si quieres aprender a programar frontend en VUE sigue este link.

1. El Software en la Empresa

En general una empresa cuando necesita un sistema a fin de sistematizar o automatizar un proceso tiene varias opciones:

  • Desarrollo a la medida con lo cual el sistema será especifico para la necesidad
  • Comprar un software para la necesidad y adaptar el proceso
  • Utilizar una plataforma low code
  • Utilizar una plataforma estándar con un proceso personalizado como un software tipo BPMS

Hacía los años 80 la premisa era desarrollar en los lenguajes disponible, hoy día aun se conserva esta opción, pero en menor medida. En 90 se realizaba mucha compra de paquete y el proceso se adaptaba para que funcionara de tal manera.

Esto genero que las empresas tuvieran diferentes sistemas de información y fuese necesario pensar en integrarlos, fue aquí en el inicio del milenio donde aparece las tecnologías para integración y marcos de trabajo como EIA (Enterprise Integration Application) y SOA (Service Oriented Architecture) como soluciones, y desde entonces la tendencia a sido hacia la composición que permita que los software vayan de la mano del paradigma de la Gestión por Procesos.

2. Definición de SOA

Aunque pueden existir muchas definiciones de SOA, una buena aproximación se logra desde su impacto, SOA como filosofía define un marco para organizar las aplicaciones o sistemas de información en una empresa.

Algunas de las características que encontramos en la definición de SOA se listan a continuación.

  • Proporciona servicios a clientes por medio de interfaces basadas en estándares, públicas y visibles.
  • Las aplicaciones pueden ligarse a servicios que evolucionan y mejoran en el tiempo.
  • No son necesarias modificaciones a las aplicaciones que consumen los servicios.
  • Proporciona un modelo claro para integrar sistemas de información dentro y fuera de la organización.
  • Constituye la base para la construcción de aplicaciones globales sobre el concepto de interoperabilidad.

Así mismo, la siguiente gráfica muestra que SOA no solo se refiere a Sistemas de Información, de manera que su impacto va más allá y contempla Personas, Procesos, Plataformas y Prácticas.

SOA
Figura 1. SOA

En definitiva podemos definir SOA como: la arquitectura que permite organizar los sistemas de información heterogéneos en las compañías bajo un marco de interoperabilidad.

La siguiente imagen muestra el momento de aparición histórico de SOA, aquí es importante observar que EIA (que básicamente se trata de archivos planos esta limitado y tiene un techo, adicionalmente que SOA aparece antes que BPMS y que hoy día se habla de conceptos como CEP (Complex Event Processing) y Web 2.0.

Aparición histórica de SOA en el tiempo
Figura 3. Aparición histórica de SOA en el tiempo

Finalmente es conveniente observar que SOA puede tener diferentes significados en función de que tipo de profesional este hablando del tema, para mayor detalle de este concepto se deja este artículo al lector.

Ambiguedad SOA

3. Arquitecturas de Aplicaciones

Las arquitecturas de aplicaciones en el marco SOA tienen dos dimensiones importantes: el nivel de desacoplamiento y la estandarización, el desarrollo de estos conceptos en las aplicaciones permitirá obtener uno de los puntos más relevantes de SOA que es la Interoperabilidad.

Las siguientes imágenes muestran como estas arquitecturas han evolucionado con el tiempo, que para este caso coinciden con el eje horizontal.

Arquitecturas de aplicaciones bajo la óptica de SOA
Figura 3. Arquitecturas de aplicaciones bajo la óptica de SOA
Tecnologías de Integración e Interoperabilidad para arquitecturas de aplicaciones
Figura 4. Tecnologías de Integración e Interoperabilidad para arquitecturas de aplicaciones

4. El proceso de Adopción SOA

Cuando una compañía organiza sus sistemas usando SOA debe realizar un proceso denominado Adopción SOA, en este proceso normalmente se sigue una hoja de ruta que incluye revisar y evaluar los siguientes aspectos:

  • Esquema SOA
  • Controles al crecimiento de TI
  • Administración de infraestructura de servicios
  • Gobierno SOA
  • Composición, reutilización y agilidad
  • Control de la guerra de dependencias

En este proceso de adopción, el Arquitecto SOA se puede asimilar al Arquitecto urbanista que busca optimizar los servicios de la ciudad incluyendo movilidad, acueducto, iluminación entre otros, por lo tanto hay que diferenciar de la Orientación al Servicio de la Arquitectura Orientada al Servicio, la palabra Arquitectura define articulación y organización alrededor de muchos conceptos de interes.

El Arquitecto SOA como Urbanista
Figura 5. El Arquitecto SOA como Urbanista

5. SOA y BPMS

En las compañías que se hace uso de estas dos tecnologías se pueden encontrar muchas mejoras en concreto los siguientes aspectos son impactados.

5.1. Productividad

En cuanto a productividad se refiere SOA y BPMS se mezclan para potenciar esta características de las empresas, recordemos también que esta caracteristica se refiere a la cantidad de tareas producidas o ejecutadas de forma correcta (los errores no cuentan!), en general se obtiene:

  • Modelado, diseño, construcción, despliegue y puesta en marcha de los procesos de forma sencilla.
  • Construcción de procesos mediante reutilización de componentes.
  • Catálogo de servicios y acciones ampliable con los componentes de la organización.
  • Minimizar los tiempos de Implantación y Formación.
  • Aplicación de protocolos y estándares de forma racional.
  • Romper la brecha entre el analista de negocio y el equipo de TI.
  • Los analistas “programan” las acciones de cada tarea sin necesidad de bajar a código.

5.2. Flexibilidad

En cuanto a flexibilidad se refiere una empresa debe amoldarse a las condiciones cambiantes de su entorno, por lo cual, la fusión entre SOA y BPMS potencia esta característica así:

  • Aplicación práctica de las tecnologías BPM y SOA
  • La utilización de estándares que faciliten la interoperabilidad tanto interna como externa.
  • Integrable en la estrategia SOA corporativa.
  • Neutralidad tecnológica y multiplataforma.
  • Construcción de procesos sobre servicios corporativos o de terceros.
  • No hay modelos propietarios ni tecnologías propietarias.
  • Separación entre capas de presentación y de aplicación.

5.3. Potencia

La potencia la podemos definir en este contexto como la capacidad de la organización para ejecutar procesos, por lo cual las siguientes características son obtenidas al unir SOA y BPMS:

  • Conjunto completo de módulos para la definición, diseño, construcción, despliegue, ejecución y administración de procesos BPM.
  • Capacidad para diseñar y mantener sistemas de información complejos en términos manejables de tiempo y costo.
  • Actualización a las últimas tecnologías.
  • Adecuación a requisitos funcionales.
  • Capacidad de integrar distintos componentes software y distintas arquitecturas de productos.
  • Capacidad para definir modelos verticales: Administración Electrónica, Banca Electrónica, Captura Documental, CMMI, Calidad.

5.4. Costos

Finalmente los costos, que son uno de los aspectos más importantes a evaluar cuando se introducen Arquitecturas Orientadas a Servicios, algunas de las ventajas que se pueden obtener se listan a continuación:

  • Minimizar los tiempos de implantación y formación.
  • Reducir costos adicionales de desarrollo.
  • Posibilitar la obtención de resultados visibles a corto plazo. Agilizar la incorporación de procesos de negocio.
  • Mejorar los costos de mantenimiento de aplicaciones.
  • Evitar instalar y mantener múltiples productos.
  • Reducir costos de licencias y mantenimiento.
  • Alinear las arquitecturas de la organización a las necesidades del negocio para definir procesos integrados.
  • Acelerar el “Time To Market”.

7. Artículos de Interés

Sistemas de Información en Empresas ERP CRM

´Los Sistemas de Información en Empresas ERP y CRM les permiten desarrollar su misión en el mundo moderno compitiendo de forma eficiente y generando ventajas sobre la competencia. Es por esto que se han especializado muchos sistemas de información y hoy día encontramos una gran cantidad que permiten realizar funciones empresariales de todo tipo.

En este artículo se explora los sistemas más populares de información dado sus categorías o clasificaciones.

Si quieres aprender a programar en java sigue este link.

Si quieres aprender a programar frontend en VUE sigue este link.

1. Sistemas de Información en las Empresas

Los Sistemas de Información en las Empresas como ERP y CRM son fundamentales para mantener la competitividad y habilitar la ejecución de procesos modernos, estos también permiten alcanzar algún grado de automatización y lograr mejores resultados empresariales.

Ahora bien surge una discrepancia entre los sistemas de información que utilizamos en el día a día en la sociedad y la empresa, estos últimos suelen ser más obsoletos y con muchos más problemas y lo anterior sucede, entre otras causas, por el volumen de personas que utilizan estos sistemas, adicionalmente por la misma complejidad de representar negocios y operaciones que a menudo son muy particulares y requieres cierto grado de personalización.

empresasociedad
Figura 1. Empresa y sociedad

En este punto es bueno hacer algunas definiciones y clarificar los tipos de software.

Definición de software

Conjunto de programas que permiten al computador realizar determinada tarea.

Definición de aplicación

Programa o conjunto de programas que realizan un trabajo especifico.

clasificacionsoftware
Figura 2. Clasificación de software

En este sentido los sistemas de información a la larga son programas de computadora, pero que de forma coloquial se utilizan estos términos como sinónimos. De igual manera es importante comprender que los sistemas de información pueden ser de Escritorio lo cual implica instalar el programa, Web que utiliza un navegador para acceder al sistema y móvil que es similar al de escritorio pero corre en un celular. Aquellos sistemas que utilizan instalación se termina llamando cliente pesado y aquellos que usan el navegador se llaman cliente liviano.

2. Sistemas ERP

2.1. Qué es ERP

Los Sistemas de Información en Empresas tipo ERP (Enterprise Relationship Management) son cruciales en el desarrollo de cualquier empresa, de hecho podríamos decir que cualquier empresa de cualquier sector de la economía debe tener un sistema ERP, puesto que estos controlan la gran mayoría de funciones empresariales básicas y comunes como contabilidad o nómina.

Así mismo hay gran cantidad de fabricantes de sistemas de este tipo, algunos de ellos tienen características globales y se parametrizan a las particularidades del país donde operan y otros son de ámbito local y ya contemplan todos los requerimientos de ley del país.

Figura 3. ERP

2.2. Aplicaciones de ERP

Las aplicaciones tipo ERP se pueden usar en los siguientes casos de uso puesto que traen funcionalidades para ello.

  • Pagos
  • Contabilidad
  • Recursos humanos
  • Proveedores
  • Inventario
  • Compras
  • Finanzas
  • Manufactura
  • Almacenes
  • Proyectos

3. Sistema CRM

2.1. Qué es CRM

Los Sistemas de Información en Empresas tipo CRM son cruciales en los procesos de ventas, estos se encargan de administrar las relaciones con los clientes, de hecho la palabra CRM (Customer Relatioship Management) es una parte del marketing que estudia estas relaciones.

Estos sistemas son más globales y no dependen tanto de las regulaciones y la legislación interna de un país, sin embargo hay que observar que dependiendo el sector pueden existir particularidades necesarias de considerar.

Algunos de los fabricantes más comunes de CRM se muestran en la siguiente imagen.

Figura 4. CRM

2.2. Aplicaciones de los CRM

Los sistemas CRM se caracterizan también por sus funcionalidades y algunas de las más usuales son:

  • Clientes
  • Ventas
  • Ingresos
  • Marketing
  • Comunicaciones
  • Presupuestos
  • Facturación
  • Recordatorios
  • Automatizaciones
  • Estadísticas

Por lo cual es común encontrar CRM que ayudan a controlar el proceso de ventas, generando embudos por el cual los prospectos de cliente van pasando y aumentando su probabilidad de ventas, así mismo permiten controlar las fuerzas comerciales, registrando contactos, clientes, llamadas realizadas, emails o comunicaciones realizados y de esta forma almacenar esta información en un sistema cosa que facilita entre otras empalmes entre vendedores.

Los CRM también son fuertes en las estadísticas que producen y que permiten a los directivos visualizar como se encuentra el proceso de ventas en un momento determinado.

4. Artículos de Interés

© 2024 ochoscar's blog

Tema por Anders NorenArriba ↑