Los tres planos de ejecución de procesos

Artículos de interés para la comunidad de Velneo 6x
Avatar de Usuario
velneo
vAdmin
vAdmin
Mensajes: 245
Registrado: 09 Sep 2005, 08:55

Los tres planos de ejecución de procesos

Mensaje por velneo » 12 Abr 2012, 14:35

En este artículo intentaremos introduciros en los distintos planos de ejecución de procesos existentes, qué son y qué implicaciones tienen.

Aprovecharemos también para comentar un par de aspectos sobre refresco terciario y bloqueos que resulta interesante tener en cuenta cuando trabajamos con procesos.

Los procesos se dividen en tres planos de ejecución [vBdC] según el lugar y el modo en que se ejecutan:

1º Plano: Local
2º Plano: Local multitarea
3º plano: Servidor

Los procesos en 1º plano se ejecutan de forma local, bien sea en el cliente, bien sea en el servidor, y devuelven un retorno por el que espera el proceso llamador, hasta que finaliza el proceso llamado, o la opción de menú que ha lanzado el proceso. Por tanto, son bloqueantes del proceso llamador o de la actividad del usuario que no puede seguir interaccionando con el interfaz de la aplicación hasta que éste haya finalizado.

Por otro lado, los procesos en 2º plano se ejecutan de forma local en el cliente, pero el proceso llamador no espera retorno, por lo que pueden ejecutarse en paralelo con otros procesos multitarea. Estos procesos, por tanto, no bloquean el proceso llamador o la actividad del usuario que sí puede seguir interaccionando con el interfaz de la aplicación. Para conocer el estado de estos procesos que se están ejecutando en segundo plano existe el Panel de procesos en 2º plano que nos muestra todos los procesos en segundo plano que se están ejecutando. Este panel está disponible en Velneo vClient, en la opción de menú Archivo/Procesos de ejecución.

En la información sobre los procesos se especifica el título de la transacción y el porcentaje del proceso realizado, datos que podemos definir en el proceso con los comandos de instrucción: Cambiar título de la transacción y Cambiar porcentaje realizado del proceso. Además, podemos configurar un punto de aborto del proceso con ayuda del comando de instrucción Punto donde se puede abortar, que nos permitirá parar en ese punto un proceso que se esté ejecutando en segundo plano.

La información relativa a los registros manejados en los procesos en 1º y 2º plano viaja entre el cliente y el servidor, por lo que debemos tener en cuenta este dato cuando trabajemos con rangos amplios de registros. De todos modos, debemos tener en cuenta que mientras trabajemos con listas y no con registros concretos, la información que viaja entre ambos no se trata del registro entero si no de la necesaria para apuntar al registro, por lo que el efecto en el tráfico es moderado.


Planos de ejecución
Los procesos en 3º plano se ejecutan en el servidor, devolviendo un retorno por el que espera el proceso llamador. Por tanto bloquea la actividad del proceso llamador, que esperará el retorno para seguir con las operaciones programadas. Esto no implica en ningún momento un bloqueo en la actividad del usuario o del servidor. Todos los procesos ejecutados en el servidor son multitarea, y en el cliente tenemos la opción de lanzar el proceso desde otro proceso multitarea.

Los procesos en el servidor, 3º plano, frente a los procesos en 1º ó 2º plano, optimizan el tráfico de información entre cliente y servidor. Esto es porque no viaja entre uno y otro información alguna sobre los registros manejados en el proceso, ni siquiera de las listas manejadas, si no que únicamente se retorna el resultado del proceso. Sin embargo, debemos tener en cuenta que esto hace que sea el servidor el que tenga que atender todas las operaciones que se realice el proceso, por lo que debemos tener en cuenta el balance de la carga.

Es interesante en este punto comentar una funcionalidad que si bien no está directamente relacionada con los planos, si que es interesante conocer por sus beneficios, ya que alivia al programador de una tarea tan tediosa como puede ser el control de cambios y la actualización de estos en los diferentes clientes que puedan estar accediendo a los mismos datos.

El refresco terciario [vBdC] es una funcionalidad preprogramada que permite la actualización en los clientes de toda la información que haya sido modificada en el servidor.

Refresco terciario
Esta funcionalidad cliente-servidor implica que la información de cualquier modificación de registros, realizada tanto en procesos ejecutados en el servidor como por acción de otros clientes, se enviará a todos los clientes que estén conectados y que hayan accedido al registro. El registro se verá actualizado cuando la información se presente en los objetos sin necesidad de forzar el refresco de los controles que los muestran o abrir de nuevo el objeto.

Esta información se tiene en cuenta para los bloqueos [vBdC]: en un bloqueo blando, varios usuarios pueden estar consultando e incluso modificando la misma ficha, aunque distintos campos. Todos ellos resultarán actualizados con los nuevos datos gracias al refresco terciario y el sistema evitará el caso de que dos usuarios intenten modificar el mismo campo. En un bloqueo duro, todos los usuarios accederán a la información actualizada una vez liberados los registros tras la modificación, sea esta en 1º, 2º ó 3º plano.

Bloqueos
Esperamos que este artículo os haya supuesto un punto de luz en el trabajo con procesos y que os ayude a aprovechar aún más los procesos en Velneo. Os animamos a consultar los artículos que podéis encontrar en la Base de Conocimiento de Velneo [vBdC] y que están enlazados en el texto, además de echarle un vistazo a todos los artículos relacionados, que os aportarán información sobre otros aspectos muy interesantes de Velneo.

Responder