11 Servidor de aplicaciones 11 A continuación vamos a explicar a través de un esquema una serie de conceptos, tratados de forma general, con el propósito de ayudar a comprender qué es el Servidor de Aplicaciones, qué servicios ofrece y cómo es su funcionamiento: Se puede definir el Servidor de aplicaciones Velázquez Visual como un programa que se instala en un equipo, con el objeto de que otro equipo pueda acceder a las aplicaciones desarrolladas con Velázquez Visual que se hayan instalado previamente en el Servidor de aplicaciones Velázquez Visual (del primer equipo). Este funcionamiento corresponde a la denominada arquitectura ClienteServidor. Por esto, al equipo que tiene instalado el Servidor de aplicaciones Velázquez Visual se le denomina SERVIDOR y al equipo que pretende acceder a las aplicaciones se denomina CLIENTE. El servidor y el cliente pueden estar dentro de una red local o bien dentro de la red que forma Internet. El servidor de aplicaciones Velázquez Visual tiene las siguientes características: Es el motor de las bases de datos de las aplicaciones que se hayan instalado en él. Gracias al servidor HTTP puede mostrar, por ejemplo, las páginas web de la empresa, tanto estáticas como dinámicas (es decir, puede mostrar los datos que se deseen de las distintas aplicaciones Velázquez Visual instaladas en él). Finalmente, permite que los distintos equipos cliente puedan acceder a las carpetas del equipo Servidor que se hayan compartido. Razón por la cual se dice que el Servidor es también un Servidor de disco. Cuando un cliente quiere entrar en una de las aplicaciones Velázquez Visual instaladas en el Servidor debe utilizar el Navegador de Velázquez Vi- Servidor de aplicaciones 492 493 VELAZQUEZ VISUAL sual. La comunicación entre Servidor y Cliente se realiza a través de un protocolo (es decir, el conjunto de normas y procedimientos para la transmisión de datos). Un ejemplo de protocolo es el conocido TCP/IP, utilizado en Internet. El protocolo utilizado en Velázquez Visual es el denominado VATP. Dicho protocolo es propio de Velázquez Visual y tiene asignado a nivel internacional su propio número de puerto (es el 690). VATP permite acceder a las distintas aplicaciones instaladas en el Servidor y a sus correspondientes datos, y también acceder a las carpetas compartidas por el Servidor de Disco. Si un cliente quiere visualizar las páginas web que tiene instaladas el Servidor puede utilizar tanto el Navegador de Velázquez Visual como cualquier otro navegador web. En este caso el protocolo de comunicación que se utiliza es el TCP/IP habitual. 11.1 Instalación del Servidor La instalación del Servidor de aplicaciones Velázquez Visual (también denominado Motor) es sencilla, ya que el asistente de instalación indica los pasos a realizar. Una vez instalado, tenemos un fichero ejecutable, denominado Vmotor.exe, situado en la senda C:\Archivos de Programa\Atica\Velazquez\Program. Adicionalmente, el usuario debe instalar los drivers correspondientes a la llave de protección Sentinel, ya que el servidor está protegido con tales llaves los necesita para acceder a ellas. Dichos controladores se encuentran en el CD de instalación, dentro de la carpeta Sentinel. Una vez realizada la instalación podemos iniciar el servidor a través de Menú de Inicio/Programas/Velázquez/Servidor aplicaciones: 11 11.2 Interfaz del Servidor Cuando accedemos al Servidor de aplicaciones las distintas áreas que componen la ventana principal del servidor son las siguientes: a) Área de configuraciones: contiene varias pestañas denominadas Aplicaciones, Usuarios (Personas), Enganches, Transacciones y Archivos. Dichas pestañas las iremos viendo con detalle posteriormente. b) Área de mensajes: útil de cara sobre todo a los programadores. En ella podremos visualizar mensajes enviados desde procesos ejecutados en Servidor de aplicaciones 494 495 VELAZQUEZ VISUAL el Servidor a través de la función de proceso Mensaje. Es habitual el intercalar mensajes en procesos para depurarlos. En el caso de procesos que son ejecutados en el servidor de aplicaciones, la forma de visualizar dichos mensajes es en esta barra de salida. En ella también se visualizan mensajes internos del Servidor de Aplicaciones: c) Área de demonios: se trata de un proceso que definimos en la aplicación y que son ejecutados de forma continuada mientras la aplicación está en ejecución. Son procesos de baja prioridad, es decir, su ejecución no afecta al trabajo normal por parte de los usuarios. En esta área se muestra, para cada demonio en ejecución, información sobre el nombre del proceso, cada cuántos milisegundos es ejecutado y el nº de veces que ha sido ejecutado: d) Área de tablas: muestra para la aplicación seleccionada en ese momento la lista de sus tablas de datos, indicando el número de fichas que tiene cada una de ellas: e) Área de tareas: está divida por las pestañas Tareas programadas (acciones que el administrador del servidor puede crear para que se realicen con la periodicidad que se desee) y Tareas Ejecución (muestra las tareas que han sido ejecutadas o se están ejecutando). 11 11.3 Servidor de aplicaciones Barra de menús La barra de menús del Servidor contiene las siguientes opciones: 11.3.1. Aplicaciones Abrir Cerrar Reiniciar Con el menú Aplicaciones podemos abrir una nueva aplicación ( Abrir), cerrar la aplicación seleccionada ( Cerrar), reiniciar la aplicación seleccionada ( Reiniciar) o reiniciarla utilizando el fichero encriptado y comprimido de extensión .VAM ( Reiniciar con vam). También podremos detener ( Detener ejecución) o continuar la ejecución ( Continuar ejecución) de la aplicación seleccionada. Asimismo, podremos visualizar las propiedades de la aplicación ( Propiedades) y los usuarios que pueden acceder a ella ( Usuarios). Reiniciar con vam Detener ejecución Continuar ejecución Propiedades Usuarios 496 497 Copia de seguridad VELAZQUEZ VISUAL Podemos realizar, además, una copia de seguridad en caliente de la aplicación ( Copia de seguridad) y poder en un momento dado recuperarla ( Recuperar copia). Recuperar copia Cortar Finalmente, visualizamos un listado con las cuatro últimas aplicaciones instaladas en el servidor y podemos cerrar el Servidor (Salir). Copiar Pegar 11.3.2. Editar Nueva carpeta de usuarios Suprimir carpeta de usuarios Modificar carpeta de usuarios Nuevo usuario Duplicar usuario Suprimir usuario Modificar usuario Nuevo grupo de usuarios Suprimir grupo de usuarios Modificar grupo de usuarios Nuevo grupo de mensajería Suprimir grupo de mensajería Modificar grupo de mensajería Nueva máquina Suprimir máquina Modificar máquina Nueva carpeta de archivo Nueva tarea Suprimir tarea Con el menú Editar podemos cortar ( Cortar, Crtl+X), copiar ( Ctrl+C) y pegar ( Pegar, Ctrl+V) lo que seleccionemos. Copiar, También es posible crear ( Nueva), suprimir ( Suprimir) o modificar ( Modificar) una Carpeta de usuarios, crear ( Nuevo), duplicar ( Duplicar), suprimir ( Suprimir) o modificar ( Modificar) un Usuario, crear ( Nuevo), suprimir ( Suprimir) o modificar ( Modificar) un Grupo de usuarios, crear ( Nuevo), suprimir ( Suprimir) o modificar ( Modificar) un Grupo de mensajería, crear ( Nueva), suprimir ( Suprimir) o modificar ( Modificar) una Máquina, crear ( Nueva) una Carpeta de archivo y crear ( Nueva), suprimir ( Suprimir) o modificar ( Modificar) una Tarea. Modificar tarea Listas de aplicaciones Dominios Web Podemos crear una lista de aplicaciones ( Listas de aplicaciones), y crear un dominio web ( Dominios Web) para que sirva páginas html. 11 Finalmente, podemos borrar el texto que aparece en el área de mensajes ( Limpiar barra salida mensajes) y modificar la configuración del Servidor ( Configuración). Servidor de aplicaciones Limpiar barra salida mensajes Configuración 11.3.3. Servicios Arrancar servidores Detener servidores Arrancar servidor Detener servidor Expulsar enganche Expulsar enganches usuario Deshacer transacción Tablas seleccionadas Todas las tablas Tablas seleccionadas Con el menú Servicios podemos arrancar ( Arrancar servidores, F5) o detener ( Detener servidores, F8) todos los servicios VATP o también arrancarlos y detenerlos de forma individual, bien el VATP ( Arrancar servidor o Detener servidor), bien el http ( Arrancar servidor o Detener servidor). Es posible también expulsar ( Expulsar enganche) un enganche, expulsar ( Expulsar enganches usuario) los enganches de un usuario o expulsar todos los enganches (Expulsar todos los enganches). Finalmente, también podemos parar y deshacer las operaciones que esté llevando a cabo una transacción ( Deshacer transacción). 11.3.4. Utilidades Con el menú Utilidades podemos Regenerar índices de algunas ( Tablas seleccionadas) o de todas ( Todas las tablas) las tablas de una aplicación, así como también Regenerar área de datos de algunas ( Tablas seleccionadas) o de todas ( Todas las tablas) las tablas de la aplicación. Todas las tablas 498 499 ADVERTENCIA Normalmente regeneraremos en primer lugar el área de datos, para a continuación regenerar los índices. VELAZQUEZ VISUAL También es posible desde esta opción de menú partir el contenedor para que cada tabla tengo el suyo propio (Partir contenedor por tabla). Finalmente, podemos visualizar un cuadro de diálogo (Registro de ficheros) donde consultar el estado de los ficheros que componen la aplicación, agrupados por directorios. 11.3.5. Ver Barra del servidor Barra de tareas Barra de salida mensajes Barra de estado Personalizar Licencias Con el menú Ver se pueden mostrar u ocultar las diferentes áreas del Servidor ( Barra del servidor, Barra de tareas y Barra de salida mensajes). También es posible desde aquí que se puedan mostrar u ocultar las diferentes barras del Servidor: por una parte, la de menú y la estándar junto con la posibilidad de poder personalizarlas (Barras de herramientas), y por otra parte, la barra situada en la parte inferior ( Barra de estado) que muestra información sobre el servidor VATP, el servidor HTTP, el hilo de control y los ficheros de las aplicaciones. Como comentamos anteriormente, las barras de menú y estándar pueden personalizarse ( Personalizar). Asimismo, con esta opción también se pueden crear nuevas barras de herramientas. Por último, es posible visualizar en un determinado momento ( Licencias) el uso que se está haciendo de la licencia, es decir, información relativa a la IP del enganche y del socket, así como los puestos y enganches que consume. Además podemos ver el número de serie, si se tiene licencia para servidor HTTP y cuántos puestos tenemos reservados para acceso vía web. 11 Servidor de aplicaciones 11.3.6. Ventana Cascada Mosaico horizontal Cada aplicación instalada en el servidor dispone de una ventana que muestra su correspondiente área de tablas. Con el menú Ventana podemos organizar la disposición de cada una de dichas ventanas ( Cascada, Mosaico horizontal y Mosaico vertical, Organizar iconos). Es posible minimizar el Servidor ( Ocultar) para que desaparezca de pantalla. Al ocultarlo aparecerá un icono en la barra de tareas de Windows. Si el icono tiene una luz verde significa que el Servidor está a la escucha. Mosaico vertical Organizar iconos Ocultar El servidor está a la escucha 500 501 El servidor está parado Acerca de Velázquez Server VELAZQUEZ VISUAL Si presenta una luz roja significa que el Servidor está parado. Para volver a mostrar el Servidor en pantalla debemos hacer doble clic sobre el mencionado icono. Si hemos establecido en el Servidor la petición de contraseña de supervisor, se solicitará una contraseña de supervisor para su apertura. Finalmente, podemos seleccionar qué ventana de área de tablas correspondiente a cada aplicación instalada en el Servidor queremos mostrar (en la figura aparecen numeradas del uno al cuatro porque sirve cuatro aplicaciones). 11.3.7. Ayuda La opción de menú Ayuda ( Acerca de Velázquez Server) nos permite visualizar información relativa a la licencia: número de serie, número de puestos, si dispone o no del Servidor http, versión del Servidor, desde cuándo está funcionando y el número de conexiones realizadas desde entonces. 11.4 Barra de herramientas La barra de herramientas por defecto del Servidor de aplicaciones Velázquez Visual contiene los siguientes botones: 11 Abrir aplicación: abre un proyecto realizado con Velázquez Visual para que sea servido por el Motor. Configuración: muestra el cuadro de diálogo Configuración que permite modificar las propiedades del Servidor. Arrancar servidores (F5): pone en marcha los servicios VATP y HTTP (SI dispone de él) del Motor. Detener servidores (F8): detiene los servicios VATP y HTTP del Servidor. Expulsar enganche: anula el enganche que ha creado el usuario que accede a una aplicación. Si en ese momento el cliente estuviese ejecutando transacciones, se avisaría en el Servidor sobre su existencia y si éste desea continuar con su expulsión; si el supervisor responde afirmativamente, las transacciones serán deshechas y el enganche expulsado. En caso de respuesta negativa, las transacciones seguirán su curso y el enganche no será expulsado. En el caso de expulsar un enganche, el Cliente de ese enganche no podrá seguir trabajando con la aplicación. Nueva carpeta de usuarios: crea una carpeta de usuarios para poder organizar los usuarios dados de alta en el Servidor. Servidor de aplicaciones Abrir aplicación Configuración Arrancar servidores Detener servidores Expulsar enganche Nueva carpeta de usuarios Suprimir carpeta de usuarios Modificar carpeta de usuarios Nuevo usuario Duplicar usuario Suprimir usuario Modificar usuario Nuevo grupo Suprimir carpeta de usuarios: elimina una carpeta de usuarios creada con anterioridad. Modificar carpeta de usuarios: permite realizar modificaciones en la carpeta dada de alta previamente. Nuevo usuario: crea un usuario para que pueda acceder a las aplicaciones que se desee. Duplicar usuario: el usuario que se crea tiene inicialmente las mismas propiedades del usuario seleccionado. Suprimir usuario: elimina un usuario creado con anterioridad. Modificar usuario: permite realizar modificaciones en el usuario dado de alta previamente. Nuevo grupo: crea un grupo de usuarios. Cuando más de un usuario vaya a tener acceso a las mismas aplicaciones, con los mismos estilos y con las mismas máquinas, nos es muy útil crear un grupo de usuarios. De esta forma, no tendremos que dar de alta las aplicaciones y máquinas en las propiedades de cada usuario, pues heredarán las definidas en el grupo al que pertenezcan. Si hemos incluido un usuario en un grupo y posteriormente en las propiedades de dicho usuario modificamos algo de lo que hereda del grupo al que pertenece (máquinas, aplicaciones, estilos de usuarios en aplicaciones…) prevalecerá lo que esté establecido en las propiedades del usuario sobre las del grupo. 502 503 Suprimir grupo Modificar grupo VELAZQUEZ VISUAL Suprimir grupo: elimina un grupo de usuarios creado con anterioridad. Modificar grupo: permite realizar modificaciones en el grupo de usuarios creado con anterioridad. Nueva máquina Suprimir máquina Modificar máquina Barra del servidor Barra de tareas Barra de salida de mensajes Nueva máquina: crea una nueva máquina, es decir, un equipo que tendrá acceso al Motor. Suprimir máquina: elimina una máquina creada anteriormente. Modificar máquina: modifica las propiedades de una máquina creada previamente. Barra del servidor: muestra u oculta la ventana correspondiente al área de configuraciones. Acerca de Ocultar Configuración Barra de tareas: muestra u oculta la ventana correspondiente al área de tareas. Barra de salida de mensajes: muestra u oculta la ventana correspondiente al área de mensajes. Acerca de: presenta el cuadro de diálogo Acerca de Vmotor que contiene información acerca del motor y su licencia. Ocultar: minimiza el Motor y lo representa con un icono situado en la barra de tareas de Windows. 11.5 Configuración del Servidor Como comentamos anteriormente existe en el Motor un cuadro de diálogo llamado Configuración que permite modificar las propiedades del Servidor. Para abrirlo debemos pulsar el botón Configuración (o bien ejecutar la opción de menú Editar/Configuración). En primer lugar vamos a ir comentando las distintas propiedades del cuadro de diálogo Configuración, para posteriormente indicar cuál es la configuración básica del Motor. 11 Servidor de aplicaciones 11.5.1. Pestaña Estilos Poner el servidor a la escucha al ejecutarse el programa: cuando marcamos esta opción, la próxima vez que iniciemos el Servidor pondrá en marcha los servicios VATP y HTTP y se pondrá a la escucha, oculto en la barra de tareas de Windows representado con el icono . Fichero LOG activo: si activamos esta opción se generará un fichero .LOG en el que se irán almacenando todas las operaciones realizadas por los usuarios en las aplicaciones abiertas en el Servidor. Esta opción es aconsejable que la activemos solamente en caso de estar realizando algún tipo de depuración para detectar algún posible error en la aplicación. Pedir contraseña de supervisor para abrir: si hemos activado la opción Poner el servidor a la escucha al ejecutarse el programa, para poder abrir el Servidor o ejecutar cualquier opción del menú de contexto desde la barra de tareas de Windows se pedirá una contraseña, que debe ser la de cualquiera de los usuarios que hayan sido dados de alta como supervisores. Enviar mensajes a los supervisores: si activamos esta opción, el supervisor de la aplicación recibirá a través de un telegrama (un pequeño cuadro de diálogo que contiene un mensaje) aquellos mensajes que se hayan definido para esa licencia en el Servidor de licencias (se ampliará este concepto más adelante en el apartado dedicado a dicha aplicación). También recibirá un telegrama con los mensajes que haya en los procesos de cualquier aplicación que ejecute un cliente. Velázquez - Servidor de aplicaciones 504 505 VELAZQUEZ VISUAL Desbloqueo de usuarios automático: debemos activar esta opción si queremos desbloquear de forma automática las cuentas de usuarios que han sido bloqueadas por haber superado el número máximo de intentos de especificación de usuario/contraseña. Si esta opción está activada deberá especificarse el número de minutos que deben transcurrir para desbloquearlas, y que por defecto son 10 minutos. Si esta opción está activada y se cierra el Servidor, al volver a ejecutarlo las cuentas bloqueadas serán desbloqueadas automáticamente. Número máximo de intentos usuario/contraseña: aquí se especifica el número máximo de intentos de especificación de usuario/contraseña que podrá efectuar un usuario para ejecutar una aplicación. Una vez excedido ese número de intentos, la cuenta será bloqueada. La cuenta podrá ser desbloqueada de forma manual accediendo a las propiedades del usuario y desactivando la casilla Cuenta bloqueada o de forma automática activando la opción anterior (Desbloqueo de usuarios automático). Cierre del servidor: se puede programar el cierre del servidor de dos formas diferentes: Cierre automático a una hora: si activamos esta propiedad tendremos que seleccionar en la lista desplegable la hora a la que el servidor será cerrado. Al llegar la hora especificada el servidor será cerrado. Cerrar servidor al finalizar la sesión de Windows: si activamos esta opción no hará falta cerrar el Motor antes de cerrar la sesión de Windows, al cerrarla será el sistema quien se encargue de cerrar el Servidor. 11.5.2. Pestaña VATP 11 Servidor de aplicaciones Directorio del servidor: indica el directorio donde se encuentra instalado el Servidor de aplicaciones Velázquez Visual. Directorio para Copias de seguridad: directorio donde van a ser almacenadas las copias de seguridad de las aplicaciones. Enganches sin accesos expiran en: cuando un usuario se conecta con el Servidor y solicita una aplicación se genera un enganche. A medida que el usuario va ejecutando la aplicación, se van generando diferentes accesos de dicho enganche en el Servidor. En esta pestaña se indica el tiempo que ha de transcurrir para que un enganche sin accesos sea dado por muerto (en horas y/o minutos). Una vez transcurrido este tiempo, un usuario cuyo enganche ha sido extinguido no podrá seguir trabajando con la aplicación. Por ejemplo, si se consulta una ficha, aparecerán los controles de edición vacíos, rejillas vacías, etc. Ver nombre completo en enganches: si activamos esta opción, al consultar enganches veremos el nombre completo del usuario. Si no está activada veremos el nombre corto. 11.5.3. Pestaña HTTP ADVERTENCIA Directorio de la Web: directorio donde se encuentran las páginas web externas a los proyectos de Velázquez Visual. Archivo Html por defecto: página web que se presentará por defecto cuando se conecte desde un navegador de Internet con el Servidor. Ésta debe Todos los archivos que están en ese directorio son descargables, así que debemos tener en cuáles tenemos allí. Además, por defecto, está configurado para que sea el directorio donde está instalado el motor: C:\Archivos de programa\Atica\Velazquez\ program, así que si no lo cambiamos, se podrán descargar todos los archivos que allí se encuentran. Debemos tener cuidado de no dejar allí copias de los mapas, u otros archivos sensibles. 506 507 VELAZQUEZ VISUAL ser un archivo HTML, no puede ser una página web interna de una aplicación Velázquez Visual. Si se especifica la página Html en este parámetro, para acceder a ella desde cualquier navegador de Internet simplemente bastará con escribir http:// seguido de la IP o el nombre de Servidor. % Calidad de imágenes: Velázquez Visual guarda las imágenes al 100% de calidad, pero con esta opción podemos indicar al Motor a qué calidad mostrará las imágenes cuando las tenga que servir. Puerto de escucha: el puerto estándar para la escucha para HTTP es el 80, y éste es el que se aplica por defecto al servidor HTTP. Si queremos modificar el número de puerto debemos especificarlo en este parámetro. No es posible modificar el puerto de escucha si el Servidor HTTP está arrancado; debemos pararlo previamente. Si hemos cambiado el número de puerto del Servidor HTTP, para poder acceder desde un explorador web a las páginas del mismo, en la especificación de la URL se deberá incluir el número de puerto a través del cual debe conectarse precedido de dos puntos (:). Por ejemplo, se ha cambiado el número de puerto HTTP por el 81; para que un usuario pueda conectarse con este Servidor a través de un explorador web, en la barra de direcciones del explorador tendría que escribir: http://IP_SERVIDOR:81/ ADVERTENCIA Únicamente será necesario reservar puestos VATP cuando desde una página web se lance un proceso del mapa. Si desde nuestra página web no se ejecutan procesos, es decir, al servidor sólo se realizan peticiones de otros elementos de Velázquez Visual, no necesitamos reservar el puesto: Búsquedas, Páginas Html, Componentes Html. La razón de reservar un puesto VATP es que el servidor necesita controlar las transacciones que el proceso realice, y esto únicamente se puede hacer a través del protocolo VATP. Reservar puesto vatp para la web: los enganches vía web no consumen puestos concurrentes, pero, si se ejecutan procesos vía web, es necesario que exista un enganche libre; si es el caso, puede activar esta opción para que el servidor siempre deje un enganche libre. 11.5.4. Pestaña iRunner 11 Cada versión del Navegador Velázquez Visual (iRunner) se corresponde con una versión determinada del Servidor. En este apartado indicaremos la versión del Navegador que se corresponde con la del Servidor (y no la del mapa). De esta forma, cuando un usuario se conecte con el Servidor desde un Navegador de una versión anterior, se le presentará un mensaje informando que tiene una versión antigua de Navegador, y le da la posibilidad de actualizarlo automáticamente. Es decir, el Servidor podrá actualizar el Navegador del cliente cuando éste se conecte. Podemos usar versiones del navegador superiores a la del servidor sin ningún problema. 11.5.5. Pestaña Licencia Si vamos a realizar el arranque del Servidor utilizando el Servidor de licencias deberemos indicar previamente en esta pestaña la correspondiente clave de licencia para la próxima vez que se arranque el Motor. 11.5.6. Configuración básica La configuración básica del Motor consiste en activar, en la pestaña Estilos, las opciones Poner el servidor a la escucha al ejecutarse el programa y Cerrar servidor al finalizar sesión de Windows y desactivar la opción de Fichero LOG activo. Servidor de aplicaciones ADVERTENCIA Si utilizamos un acceso directo a una aplicación con el iRunner debemos comprobar, tras la actualización de éste, que el acceso directo apunte al navegador actualizado y no al antiguo. En el caso de que sobreescribamos sobre el anterior no debería haber problema. 508 509 Abrir aplicación VELAZQUEZ VISUAL 11.6 Área de configuraciones 11.6.1. Pestaña Aplicaciones En esta pestaña aparecen representadas las aplicaciones Velázquez Visual que hemos instalado en el Servidor. Por defecto el Servidor tiene instaladas dos aplicaciones que se verán más adelante: el Historial del servidor y el Servidor de licencias. La información de las aplicaciones abiertas es guardada por el servidor en el archivo fuvm.vuf en el directorio en el que está instalado, y del cual es conveniente guardar copias de seguridad en caso de modificaciones accidentales, reinstalación del servidor, etc. Instalación de una aplicación Vamos a ver el proceso de instalación a través del siguiente ejemplo: e Ejemplo: Instalación de la aplicación Agenda.map Queremos instalar en un Servidor la aplicación Agenda.map. Para ello seguiremos los siguientes pasos: Pulsamos el botón caciones > Abrir. Abrir aplicación (o se ejecuta la opción de menú Apli- A continuación seleccionamos, utilizando el cuadro de diálogo Abrir, el nombre del mapa de Velázquez Visual que queremos instalar en el Servidor. 11 Servidor de aplicaciones e Una vez se pulsa el botón Abrir, la aplicación aparecerá representada en el área de configuraciones del Motor, dentro de la pestaña Aplicaciones. Propiedades de una aplicación Vamos a ver las propiedades utilizando el mapa que instalamos en el apartado anterior. Ejemplo: Visualizar las propiedades de la aplicación Agenda.map Queremos ver las propiedades en un Servidor de la aplicación Agenda.map. Para ello seguimos los siguientes pasos: Con la aplicación agenda seleccionada, pulsamos el botón derecho del ratón, y seleccionamos en el menú contextual la opción Propiedades aplicación (o seleccionando la opción de menú Aplicaciones/Propiedades) para mostrar el cuadro de diálogo Propiedades de la aplicación: Propiedades aplicación 510 511 VELAZQUEZ VISUAL e Dicho cuadro de diálogo muestra las propiedades siguientes: Código: número de la aplicación abierta. Nombre, Versión, Aplicación desarrollada por y Nº Licencia: son las especificadas para dicho mapa en el cuadro de diálogo Propiedades proyecto del Editor de Proyectos de Velázquez Visual). Alias: será el que se presente al usuario en la lista de aplicaciones al conectar el Navegador con el Servidor. Si no se indica ninguno, la aplicación aparecerá en la lista de aplicaciones con lo indicado en la propiedad Nombre. Incluir en la lista de aplicaciones por defecto: si marcamos esta propiedad la aplicación figurará en la lista de aplicaciones que se presenta al realizar la conexión desde el Navegador con el Servidor. Nº puestos: indica cuántos puestos están utilizando la aplicación. 11.6.2. Pestaña Usuarios En esta pestaña aparecen los Usuarios (e incluidas aquí las Carpetas de usuarios), los Grupos de usuarios, los Grupos de mensajería y las Máquinas que estén creadas en el Motor. 11 Servidor de aplicaciones Por defecto aparece creado, por un lado, un usuario denominado Supervisor, y por otro lado también una máquina denominada Toda la red. En este apartado se va a crear en primer lugar una Carpeta de usuarios y en segundo lugar una Máquina. Las configuraciones de usuarios y grupos de usuarios se guardan en el archivo fuvm.vuf en el directorio del servidor, por lo que es conveniente hacer copias de seguridad de este archivo de forma que en caso de modificaciones accidentales, reinstalación del servidor, etc., podamos hacer uso de este archivo y recuperar los datos. Creación de una Carpeta de usuarios Se va a realizar este proceso utilizando para ello el siguiente ejemplo: Ejemplo: Creación de la carpeta Supervisores e Vamos crear una carpeta de usuarios para introducir en ella a dos usuarios que se crearán posteriormente. Los pasos a realizar son los siguientes: Dentro del área de configuraciones pinchamos con el botón izquierdo del ratón sobre la pestaña Usuarios. Aparecerá, creado por defecto, el usuario Supervisor. Entonces pulsamos el botón Nueva carpeta de usuarios de la barra de herramientas (o bien usamos la opción de menú Editar/Carpetas de usuarios/Nueva), creándose automáticamente la carpeta. Si pulsamos el botón Modificar carpeta de usuarios de la barra de herramientas (o bien seleccionando la opción de menú Editar/Carpetas de usuarios/Modificar) se mostrará el cuadro de diálogo Carpeta de usuarios en Nueva carpeta de usuarios Modificar carpeta de usuarios 512 513 VELAZQUEZ VISUAL e el cual podemos modificar el nombre de la carpeta. Dicho nombre lo sustituimos por Supervisores. Al pulsar el botón Aceptar, la nueva carpeta aparecerá representada con el nombre asignado en el Servidor. Creación de una máquina Una máquina engloba aquellos equipos que tendrán acceso al Servidor. Vamos a explicar los pasos a realizar utilizando un nuevo ejemplo. e Ejemplo: Creación de una máquina Vamos a crear una nueva máquina que va a ser la que se asignará al Departamento de Administración. Dicho departamento forma una red con equipos entre la IP 100.100.120.0 y la IP 100.100.120.255. Los pasos a realizar son los siguientes: Nueva máquina Dentro de la pestaña Usuarios pulsamos el botón Nueva máquina de la barra de herramientas (o también podemos seleccionar la opción de menú Editar/Máquinas/Nueva...). Esto mostrará el cuadro de diálogo Máquina. En las propiedades del cuadro de diálogo escribiremos lo siguiente: Nombre: en nuestro ejemplo Administración. Nombre completo: es una propiedad opcional. Escribimos Departamento de Administración. 11 Ip: si vamos a crear una sola máquina para una sola IP se rellenaría únicamente el valor Inicial. Como en el ejemplo mencionamos un rango de IP’s, marcamos la opción Varios y rellenamos como valor Inicial 100.100.120.0 y como valor Final 100.100.120.255. Al pulsar el botón Aceptar aparecerá representada esa máquina en el apartado Máquinas de la pestaña Aplicaciones: 11.6.3. Pestaña Enganches Cuando un usuario abre una aplicación con el Navegador de Velázquez Visual se genera un enganche con el Servidor. Servidor de aplicaciones e 514 515 VELAZQUEZ VISUAL Adicionalmente, cada petición que el usuario hace al Servidor durante la ejecución de la aplicación generará un acceso. Cada vez que se establezca un enganche o se finalice, éste será dado de alta automáticamente en la aplicación del Historial del Servidor. Dentro del área correspondiente a esta ventana podemos ver información relativa a: Aplicación: nombre de la aplicación abierta en el enganche. Usuario: si la aplicación tiene activada la petición de usuario se mostrará el nombre del mismo. Máquina: IP de la máquina desde la que el usuario esté ejecutando la aplicación. Inicio: día de la semana y hora en que el enganche ha sido establecido. Acceso: hora del último acceso realizado en dicho enganche. Transac.: indica el número de transacciones que está realizando el enganche. 11.6.4. Pestaña Transacciones Las transacciones son operaciones que implican escritura en disco. La arquitectura que utiliza el Servidor funciona transaccionalmente a dos niveles diferentes: Si durante la ejecución de una transacción generada por un usuario se produce una finalización anómala de la misma, será deshecha solamente esa transacción, no afectará al resto de los clientes. Si esto ocurre en el propio Servidor, se deshará todas las que estuvieran pendientes de finalizar. Si en la máquina donde está instalado el Servidor se hubiese producido una terminación anómala del mismo mientras se estuviesen ejecutando transacciones sobre una aplicación, al volver a arrancar el Servidor, el programa advertirá sobre la existencia de transacciones pendientes de finalizar y 11 da opción al supervisor para reconstruir las bases de datos de la aplicación. En el caso de que no las reconstruya se indicará en la lista de aplicaciones que la aplicación tiene transacciones pendientes de finalizar con el icono junto al nombre de la misma. Para reconstruir las bases de datos bastará con que seleccionemos la aplicación en la lista de aplicaciones y ejecutemos la opción de menú Aplicaciones/Reiniciar. Por otro lado, supongamos un proceso que transacciona pero que en la transacción no se realizan operaciones durante más de cuatro minutos. En este caso se entenderá que el cliente que lo lanzó está colgado o no responde, y la transacción será deshecha. Un ejemplo es un proceso en el que se abra un formulario: si éste permanece abierto durante más de 4 minutos, se terminará el proceso y se deshará la transacción efectuada. Esta arquitectura cliente-servidor incluye un potentísimo sistema de control de bloqueos. Por ejemplo, desde dos usuarios se ejecutan sendos procesos durante la ejecución de los cuales se produce una colisión (en los dos se intenta bloquear la misma ficha), uno continuará con la transacción y la del otro será deshecha por el sistema, que ejecutará una serie de reintentos, tras los cuales, si no ha sido posible continuarla, avisará al usuario si quiere reintentar y, en caso afirmativo, la transacción permanecerá a la espera hasta que finalice la del otro usuario y, una vez finalizada, la lanzará de nuevo. Los bloqueos son realizados a nivel de registro, no a nivel de tabla. En esta pestaña Transacciones podremos obtener información sobre: Título Transacción: nombre de la transacción que está siendo ejecutada. Aplicación: nombre de la aplicación sobre la que se está ejecutando la transacción. Usuario: nombre del usuario que ha disparado la transacción. Inicio: hora en que la transacción ha comenzado. Acceso: hora en la que se ha efectuado el último acceso al Servidor. Nº de operaciones realizadas: número de operaciones realizadas en la transacción. Servidor de aplicaciones Transacciones pendientes de finalizar 516 517 VELAZQUEZ VISUAL Cada nueva transacción que reciba el Servidor será presentada en la primera posición de la lista de transacciones. Las transacciones tendrán un icono diferente según su estado. Los posibles estados son: Transacción ejecutándose • La transacción se está ejecutando . Transacción: colisión Transacción finalizada correctamente • La transacción está fuera de control y ha entrado otra en el Servidor con la que colisiona. El Servidor rechaza la que está fuera de control y continúa la ejecución de la nueva . Transacción deshecha • La transacción ha finalizado correctamente Nueva • La transacción ha sido deshecha . . Las notificaciones sobre estado de las transacciones que aparecen en esta pestaña no desaparecen inmediatamente al concluir, sino que permanecen cierto tiempo en pantalla para que el Administrador del sistema tenga tiempo de monitorizarlas. Una vez transcurrido dicho tiempo desaparecerán de la lista de transacciones. Es posible abortar manualmente una transacción que esté siendo ejecutada. Para ello la seleccionamos en la pestaña de Transacciones y ejecutamos la opción Deshacer transacción del menú de contexto que se presenta al hacer clic con el botón derecho del ratón sobre la misma: Nos pedirá confirmación antes deshacerla. 11.6.5. Pestaña Archivos Motor, además de servir aplicaciones de Velázquez Visual y páginas web, también funciona como servidor de disco, es decir, podemos compartir carpetas que serán accesibles a través del Explorador de equipos del Navegador Velázquez Visual. Para crear una nueva carpeta compartida pulsamos sobre el área correspondiente a esta pestaña con el botón derecho del ratón y seleccionamos la opción Nueva... del menú contextual que se muestra. Al seleccionar dicha opción se presenta el cuadro de diálogo Compartir carpeta de archivo. 11 Servidor de aplicaciones Los parámetros a cumplimentar son: Nombre de la carpeta compartida: nombre que va a tener la carpeta en el cliente cuando se conecte con el SDV (Servidor de Disco Velázquez). Senda: ruta de la carpeta a compartir. Si pulsamos el botón se mostrará el cuadro de diálogo Seleccione carpeta a compartir para seleccionar dicha ruta y la correspondiente carpeta: Examinar 518 519 Agregar Examinar VELAZQUEZ VISUAL Permisos: permisos que van a tener los usuarios sobre las carpetas. Para añadir un permiso pulsamos el botón Agregar, para seleccionar en primer lugar un grupo de usuarios. Una vez seleccionado aparecerá la primera carpeta compartida. Por defecto, el tipo de acceso por parte de los usuarios es de Control total, aunque es posible modificar estos valores. La información sobre la configuración de las carpetas compartidas se guarda en el archivo carcom.vuf en la carpeta en que está instalado el servidor. Por tanto, es importante realizar copias de seguridad de este archivo para, en caso de modificaciones accidentales, reinstalación del servidor, etc., poder recuperar la configuración guardada en este archivo. Vamos a realizar a continuación un ejemplo para crear una nueva carpeta compartida en el Servidor: e Ejemplo: Creación de una carpeta compartida Vamos a crear una carpeta compartida en el Servidor denominada Administración y que va a estar en la senda c:\Agenda. Los pasos a realizar son los siguientes: Dentro de la pestaña Archivos pulsamos con el botón derecho del ratón sobre el área blanca y se selecciona la opción del menú contextual Nueva... (o bien la opción de menú Editar/Carpetas de archivos/Nueva...) para que se muestre el cuadro de diálogo Compartir carpeta de archivos. En dicho cuadro de diálogo se definen las siguientes propiedades: Nombre de la carpeta compartida: Administración. Senda: pulsamos el botón para mostrar el cuadro de diálogo Seleccione carpeta a compartir y elegimos la senda c:\\Agenda (si no se tiene esta carpeta creada se puede crear una nueva carpeta en Windows para poder asignarla en este apartado). Al pulsar el botón Aceptar dicha carpeta aparecerá en la lista de carpetas de la pestaña Archivos. 11 11.7 Servidor de aplicaciones Configuración de usuarios Como hemos comentado en un apartado anterior, la primera vez que ejecutamos el Servidor se crea un usuario Supervisor por defecto. Si queremos eliminarlo debemos crear previamente otro usuario antes de hacerlo. En el árbol de usuarios el Supervisor es identificado por el icono Supervisor. Para crear un usuario pinchamos con el botón izquierdo del ratón sobre la pestaña Usuarios. Dentro de la carpeta Usuarios aparecerá creado por defecto el usuario Supervisor. Pulsamos el botón Nuevo usuario (o bien seleccionamos la opción de menú Editar/Usuarios/Nuevo...) para que se muestre el cuadro de diálogo Usuario. Supervisor Nuevo usuario 520 521 VELAZQUEZ VISUAL Las propiedades de dicho cuadro de diálogo son las siguientes: Nombre: nombre que deberá escribir el usuario en la ventana de petición de usuario que se presenta al ejecutar una aplicación de Velázquez Visual. Nombre completo: nombre completo de dicho usuario. Contraseña: contraseña que deberá escribir el usuario en la ventana de petición de usuario que se presenta al abrir una aplicación Velázquez Visual desde el Navegador. Repetir contraseña: confirmación de la contraseña escrita en el parámetro anterior. Carpeta: si hemos creado carpetas de usuarios es posible seleccionar aquí la carpeta en la que incluiremos al usuario. Estilos: Supervisor: activaremos este estilo si deseamos que el usuario sea Supervisor. El Supervisor puede, por ejemplo, reconstruir el sistema, crear y modificar otros usuarios, abrir el servidor, etc. Desconfiar Desconfiar Desconfiar: si a un usuario le marcamos esta opción, el Servidor creará un LOG independiente con las operaciones que éste vaya realizando al ejecutar las aplicaciones. De esta manera, el supervisor del sistema podrá vigilar todos sus movimientos. En el árbol de usuarios, el que tenga activado este estilo será identificado por el icono Desconfiar. Al acceder a la pestaña de enganches, si existe uno de un usuario en el que se desconfía, se mostrará junto al enganche el icono Desconfiar. Cuenta desactivada: esta opción nos permite desactivar la cuenta de un usuario sin que para ello tengamos que eliminarlo. En el momento que desactivemos esta opción, el usuario podrá acceder de nuevo a las aplicaciones del Servidor. ADVERTENCIA Esta opción no puede ser activada por el Supervisor del sistema, sino que es el servidor el que la activa. Pero el Supervisor sí puede desmarcarla para desbloquear la cuenta. Cuenta bloqueada: si un usuario intenta abrir una aplicación con una contraseña errónea, tantas veces como se haya especificado en el cuadro de diálogo Configuración, automáticamente el Servidor bloqueará dicha cuenta. Cuando esto ha ocurrido, queda ya de mano del supervisor del sistema el desbloquearla. Debe cambiar contraseña en siguiente conexión: si activamos este estilo, la siguiente vez que el usuario se conecte con el Servidor, se le avisará que cambie su contraseña por una nueva. La contraseña nunca caduca: si activamos esta opción, la contraseña asignada al usuario nunca caducará; si no la activamos, se entenderá que ésta caducará el día y la hora especificados en las opciones de inicio. Caducidad cuenta: 11 Servidor de aplicaciones Tiene caducidad: si queremos establecer una fecha de caducidad a la cuenta del usuario, bastará con que activemos esta opción y especifiquemos la fecha y hora en que ésta caducará. Enganches simultáneos: Sin límite: cada vez que el usuario pide una aplicación al Servidor genera un enganche. Si activamos esta propiedad el usuario podrá generar varios enganches simultáneos. Nº: si no activamos la opción Sin límite especificaremos en este parámetro el número de enganches simultáneos permitidos al usuario. El cuadro de diálogo Usuarios presenta en la parte inferior una serie de pestañas. Que son las siguientes: Pestaña Grupos: si hemos creado grupos de usuarios seleccionaremos el grupo o grupos donde queremos incluir al usuario. Para seleccionar un grupo de usuarios pulsaremos el botón Añadir grupo. Se presentará un menú desplegable con los grupos de usuarios disponibles para así seleccionar el deseado. Un usuario puede estar vinculado a varios grupos. Si queremos quitar al usuario de un grupo determinado, seleccionaremos el grupo en la lista y pulsaremos el botón Quitar grupo. En el apartado siguiente veremos cómo crear un Grupo de usuarios. Pestaña Mensajería: desde el Navegador Velázquez Visual un usuario puede enviar Telegramas (mensajes) al resto de los usuarios. Solamente podrá enviar telegramas a usuarios pertenecientes al mismo grupo o grupos de mensajería que él. Si hemos creado grupos de mensajería seleccionaremos el grupo o grupos donde incluiremos al usuario. Para seleccionar un grupo de mensajería pulsaremos el botón Añadir grupo de mensajería. Se presentará un menú desplegable con los grupos de mensajería disponibles para poder seleccionar el deseado. Un usuario puede estar vinculado a varios grupos de mensajería. Si queremos quitar al usuario de un grupo de mensajería determinado, seleccionar el grupo en la lista y pulsar el botón Quitar grupo de mensajería. Pestaña Aplicaciones: en este apartado seleccionaremos la aplicación o aplicaciones a las que el usuario podrá tener acceso. Si hemos activado al usuario la propiedad Supervisor, automáticamente será asignado como usuario autorizado de la aplicación del Historial del servidor aunque ésta no aparecerá en la lista de aplicaciones del mismo. Grupos Añadir grupo Quitar grupo Mensajería Añadir grupo de mensajería Quitar grupo de mensajería Aplicaciones 522 523 Agregar Quitar VELAZQUEZ VISUAL Al pulsar el botón Agregar se presenta un menú desplegable con las aplicaciones disponibles abiertas en el Servidor en las que hayamos activado la petición de usuario. Al seleccionar la aplicación deseada ésta aparece en la lista de aplicaciones del usuario. Propiedades Con el botón Quitar se suprime la aplicación seleccionada de entre las que aparecen en la lista de aplicaciones del usuario. El botón Propiedades nos permite establecer los permisos que el usuario tendrá en la aplicación seleccionada. Para ello debemos seleccionar la aplicación en la lista y pulsar este botón. Se presentará el cuadro de diálogo Permiso: ADVERTENCIA En el Navegador existen ciertas opciones de listas ya preprogramadas que estarán activadas o desactivadas según el nivel de privilegio de los usuarios; éstas son: Modificar campo: para que esté activa el usuario deberá tener un nivel de privilegio igual o superior a 92. Modificar campo si…: para que esté activa el usuario deberá tener un nivel de privilegio igual o superior a 92. Fundir fichas: para que esté activa el usuario deberá tener un nivel de privilegio igual o superior a 92. Exportar ASCII: para que esté activa el usuario deberá tener un nivel de privilegio igual o superior a 90. Este cuadro de diálogo tiene las siguientes propiedades: Privilegio: nivel de privilegio del usuario en la aplicación. Grupo: los grupos de usuarios de una aplicación son necesarios cuando en el proyecto de Velázquez hemos creado variables globales con la propiedad Por grupos de usuarios activada. Esta propiedad permite que, en tiempo de ejecución, la variable tenga un valor diferente para cada grupo. Pues bien, en este parámetro simplemente habrá que escribir un número, que será indicativo del grupo al que pertenecerá dicho usuario. Obviamente, dicho número no puede ser superior al número máximo de grupos de usuarios definido en el proyecto de Velázquez. Menú inicial: menú inicial de la aplicación para dicho usuario. Perfil: existe un producto, el Editor de Personalizaciones Velázquez Visual, que permite personalizar y crear informes y dibujos en una aplicación de Ve- 11 lázquez Visual. Si hemos creado alguna personalización aparecerá listada en el combo box. Por tanto, cada usuario puede tener sus propios informes y dibujos personalizados. Servidor de aplicaciones Máquinas A cada usuario de la aplicación sólo le podemos asignar una personalización, pero una misma personalización puede ser asignada a diferentes usuarios. En esta propiedad seleccionamos en el combo box la personalización que se quiere asignar al usuario. A partir de este momento dicho usuario tendrá a su disposición tanto los dibujos e informes que hayamos personalizado como los que hayamos añadido específicamente para la personalización asignada. Estilos: si en el proyecto de Velázquez Visual hemos creado estilos de usuarios, éstos aparecerán en este control. A la izquierda de cada estilo de usuario se incluye una casilla de verificación que permitirá activarlo o desactivarlo. Con los botones Marcar Todos y Desmarcar todos se puede, respectivamente, marcar o desmarcar todos los estilos de la aplicación. Pestaña Máquinas: si hacemos doble clic sobre el área correspondiente a esta pestaña se presentará el cuadro de diálogo Máquinas autorizadas, que muestra todas las máquinas que estén creadas en el Servidor: ADVERTENCIA Si hemos creado personalizaciones durante la ejecución de la aplicación, hay que cerrar la aplicación y reiniciarla para que los cambios estén disponibles para los usuarios. 524 525 VELAZQUEZ VISUAL Para seleccionar una máquina debemos activar la casilla de verificación que se encuentra junto al nombre de la misma. La máquina o máquinas seleccionadas aparecerán en la lista de máquinas autorizadas del usuario. Para desasignar una máquina a un usuario haremos doble clic sobre ella en las propiedades del usuario y desactivaremos la casilla de verificación correspondiente. Observación Nuevo usuario Pestaña Observación: en esta pestaña es posible escribir cualquier comentario que queramos realizar sobre el usuario. A continuación realizaremos un ejemplo para ver la configuración de usuarios. e Ejemplo: Creación de dos usuarios Vamos a crear dos nuevos usuarios que deben acceder a la aplicación Agenda.map instalada anteriormente y que forman parte del Departamento de Administración. Los pasos a realizar son los siguientes: Dentro de la pestaña Usuarios pulsamos el botón Nuevo usuario de la barra de herramientas (o bien seleccionamos la opción de menú Editar/Usuarios/Nuevo..) para que se muestre el cuadro de diálogo Usuario. En él rellenamos los siguientes datos correspondientes al primer usuario. Nombre: Usuariouno. Nombre completo: El primer usuario. La contraseña nunca caduca: Activamos esta opción. Enganches simultáneos: Sin límite. 11 Servidor de aplicaciones e Seleccionamos la pestaña Aplicaciones y pulsando el botón Agregar escogemos la aplicación Agenda. Dicha aplicación aparecerá en la lista de aplicaciones del usuario. Al hacer doble clic sobre la aplicación para que aparezca el cuadro de diálogo Permiso rellenamos sus propiedades con los siguientes datos: Privilegio: 90 Grupo: 0 Menú inicial: Menú General Perfil: .Ninguno Agregar 526 527 VELAZQUEZ VISUAL e A continuación seleccionamos la pestaña Máquinas y en su correspondiente ventana hacemos doble clic para que aparezca el cuadro de diálogo Máquinas autorizadas a: Usuariouno. En dicho cuadro se marca la casilla correspondiente a la máquina denominada Administración. La máquina seleccionada aparecerá en la lista de máquinas del usuario: De esta manera el nuevo Usuariouno tiene autorización para acceder a la aplicación Agenda utilizando la máquina Administración (que tiene el rango de IP’s vista en el apartado de Creación de máquina). Seguidamente creamos el segundo usuario. Podemos utilizar el mismo procedimiento utilizado para crear el primer usuario. Pero para hacerlo más rápido esta vez optamos por seguir otro camino: Duplicar usuario Con el usuario Usuariouno del árbol Usuario de la pestaña Usuarios seleccionado, pulsamos el botón Duplicar usuario de la barra de herramientas (o bien seleccionamos la opción de menú Editar/Usuarios/Duplicar). De esta manera se presenta de nuevo el cuadro de diálogo Usuario, pero en es- 11 te caso, al duplicar el usuario, tiene la particularidad de que ya hereda las propiedades del usuario duplicado. Por lo tanto, sólo tenemos que definir las propiedades de usuario y contraseña: 11.8 Configuración de grupos de usuarios Los grupos de usuarios se utilizan en los casos en que más de un usuario vaya a tener acceso a las mismas aplicaciones, con los mismos estilos y con las mismas máquinas. De esta forma, no tendremos que dar de alta las aplicaciones y máquinas en las propiedades de cada usuario, pues heredarán las definidas en el grupo al que pertenezcan. Si hubiésemos incluido un usuario en un grupo y posteriormente en las propiedades de dicho usuario se modifica algo de lo que hereda del grupo al que pertenece (máquinas, aplicaciones, estilos de usuarios en aplicaciones…) prevalecerá lo que esté establecido en las propiedades del usuario sobre las del grupo. Asimismo, los grupos de usuarios también son necesarios cuando vayamos a utilizar el Servidor de disco de Velázquez Visual. Servidor de aplicaciones e 528 529 Nuevo grupo VELAZQUEZ VISUAL Para crear un nuevo Grupo de usuarios debemos pulsar, desde la pestaña Usuarios, el botón Nuevo grupo de la barra de herramientas. Se mostrará el cuadro de diálogo Grupo de usuarios. Usuarios Nuevo usuario Dicho cuadro de diálogo tiene las siguientes propiedades: Nombre: nombre que se le va a asignar al grupo de usuarios. Pestaña Usuarios: aquí se irán seleccionando uno a uno los usuarios que van a formar parte del grupo. Para añadir un usuario se pulsa el botón Nuevo usuario. Se presentará el cuadro de diálogo Selección de miembros del grupo: En el panel izquierdo aparecerá la lista de usuarios seleccionables. Para seleccionar uno haremos doble clic sobre él. Desaparecerá del panel izquier- 11 Servidor de aplicaciones do y se mostrará en el derecho, que es el panel de usuarios seleccionados en el grupo. Pestaña Aplicaciones: tiene la misma funcionalidad que la pestaña Aplicaciones vista en el apartado dedicado a los usuarios. Pestaña Máquinas: tiene la misma funcionalidad que la pestaña Máquinas vista en el apartado dedicado a los usuarios. Pestaña Archivos: en el área correspondiente a esta pestaña podemos definir las diferentes carpetas compartidas del Servidor de disco a las que puede acceder el grupo de usuarios. Para ello debemos pulsar el botón Agregar, que mostrará un menú desplegable con las carpetas compartidas por el Servidor. Al seleccionar la carpeta deseada ésta aparece en la lista de carpetas del Grupo de usuarios. Los botones Quitar y Propiedades permiten, respectivamente, eliminar y mostrar el cuadro de diálogo Permisos (que se verá a continuación) de la carpeta seleccionada en la lista de carpetas del Grupo de usuarios: Es posible definir para cada una de las carpetas de la lista de carpetas del grupo de usuarios el tipo de acceso que van a tener (si pueden crear nuevas carpetas, borrar, copiar o pegar). Si hacemos doble clic con el botón izquierdo del ratón sobre una de las carpetas de la lista de carpetas del Grupo de usuarios (o bien seleccionamos una carpeta de dicha lista y pulsamos el botón Propiedades) se presentará el cuadro de diálogo Permisos en el cual podemos definir los citados niveles de acceso. Aplicaciones Máquinas Archivos Agregar Quitar Propiedades 530 531 VELAZQUEZ VISUAL Para definirlos bastará con que marquemos o desmarquemos las casillas correspondientes a cada tipo de acceso (Lectura, Escritura, Borrado de archivos o carpetas y Creación de nuevas carpetas, respectivamente). Veremos a través de un ejemplo cómo crear un nuevo grupo de usuarios: e Ejemplo: Creación de un grupo de usuarios Vamos a crear un nuevo Grupo de usuarios llamado Administración que va a englobar a los dos usuarios creados anteriormente y que pertenecen al Departamento de Administración de una empresa. Dichos usuarios podrán tener todos los accesos, salvo el de borrado. Los pasos a realizar son los siguientes: Nuevo grupo Agregar usuario Dentro de la pestaña Usuarios se pulsa el botón Nuevo grupo de la barra de herramientas (o también seleccionamos de la opción de menú Editar > Grupos de usuarios > Nuevo). Esto mostrará el cuadro de diálogo Grupo de usuarios. Las propiedades de este Grupo de usuarios son las siguientes: Nombre: Administración. Pestaña Usuarios: Pulsamos el botón Agregar usuario para que se muestre el cuadro de diálogo Selección de miembros del grupo. Hacemos doble clic sobre los usuarios Usuariodos y Usuariouno para que pasen al área de la derecha: 11 Servidor de aplicaciones e Pestaña Aplicaciones: Pulsamos el botón Agregar y seleccionamos la aplicación Agenda del menú desplegable. Una vez situados en la lista de aplicaciones del Grupo de usuarios, seleccionamos y hacemos doble clic con el botón izquierdo del ratón (o bien se selecciona y se pulsa el botón Propiedades) para definir las siguientes propiedades en el cuadro de diálogo Permiso: Privilegio: 100 Grupo: 0 Menú inicial: Arranque menú formulario. Perfil: .Ninguno Agregar Propiedades 532 533 VELAZQUEZ VISUAL e Pestaña Máquinas: Hacemos clic con el botón derecho del ratón sobre el área de color blanco para seleccionar la opción del menú contextual Modificar máquinas autorizadas y marcamos, dentro del cuadro de diálogo Máquinas autorizadas, la casilla de la máquina denominada Administración (creada en un apartado anterior). Agregar Pestaña Archivos: Pulsamos el botón Agregar y en la lista desplegable que aparece seleccionamos la carpeta Administración para que se muestre en la lista de carpetas del Grupo de usuarios. Al hacer doble clic sobre esa carpeta de la lista aparece el cuadro de diálogo Permisos. Como en el enunciado comentamos que no permitiremos el borrado, desmarcamos la opción Borrado de archivos o carpetas. 11.9 Configuración de grupos de mensajería Desde el Navegador Velázquez Visual un usuario puede enviar Telegramas (mensajes) al resto de los usuarios. Solamente podrá enviar telegramas a usuarios pertenecientes al mismo grupo o grupos que él. Si un usuario no se encuentra dentro de un grupo de mensajería no podrá enviar ni recibir telegramas. Para crear un nuevo Grupo de mensajería deberemos pulsar, dentro de la pestaña Usuarios, la opción de menú Editar/Grupos de mensajería/Nuevo... Se mostrará el cuadro de diálogo Grupo de mensajería: 11 Servidor de aplicaciones Este cuadro de diálogo tiene las siguientes propiedades: Nombre: nombre que daremos al Grupo de mensajería. Si pulsamos el botón Agregar usuario aparece el cuadro de diálogo Selección de miembros del grupo, similar al que aparece en la definición de un nuevo Grupo de usuarios: Agregar usuario En el panel izquierdo aparecerá la lista de usuarios seleccionables. Para seleccionar uno hacemos doble clic sobre él. Desaparecerá del panel izquierdo y se mostrará en el derecho, que es el panel de usuarios seleccionados en el grupo. La creación de un grupo de usuarios se va a explicar a través de un ejemplo. Ejemplo: Creación de un Grupo de mensajería Vamos a crear un nuevo Grupo de mensajería denominado Administración, que engloba a todos aquellos usuarios que pertenecen al Departamento de Administración de una empresa. Los pasos a realizar son los siguientes: Dentro de la pestaña Usuarios seleccionamos la opción de menú Editar/Grupos de mensajería/Nuevo... Aparecerá el cuadro de diálogo Grupo de mensajería. En la propiedad Nombre se escribe Administración. A continuación pulsamos el botón Agregar usuario para mostrar el cuadro de diálogo Selección de miembros del grupo. Se hace doble clic sobre el Usuariouno y el Usuariodos para pasarlos al área de la derecha. Así formarán parte del Grupo de mensajería. e 534 535 VELAZQUEZ VISUAL e De esta manera, al pulsar el botón Aceptar del cuadro de diálogo Grupo de mensajería se habrá creado el nuevo Grupo de mensajería. 11.10 Tareas programadas Nueva tarea 11.10.1. Pestaña Configuración de tareas Tareas programadas Para programar una nueva tarea hacemos clic sobre el área blanca de la pestaña y seleccionamos, en el menú contextual que aparece, la opción Nueva tarea... (o también a través de la opción de menú Editar/Tareas/Nueva). Aparecerá el cuadro de diálogo Tarea. CUADRO DE DIÁLOGO TAREA Las propiedades del cuadro de diálogo son las siguientes: Asunto: especificación del tipo de tarea que vamos a programar. Existen tres tipos de tareas: 11 Servidor de aplicaciones • Copia de seguridad: la tarea a programar será la realización de una copia de seguridad de las tablas de datos de una aplicación concreta. Sus parámetros específicos son: Aplicación: nombre de la aplicación de la que vamos a hacer una copia de seguridad. Directorio destino: especificación del directorio donde se guardará el archivo de la copia de seguridad (archivo con extensión VCS). Para facilitar la especificación del mismo pulsamos el botón Examinar. • Regenerar índices: la tarea a programar será la regeneración de los índices de una tabla de datos de una aplicación concreta. Aplicación: nombre de la aplicación de la que queremos regenerar índices. Tabla: especificación de la tabla de datos de la aplicación de la que queremos regenerar los índices. • Ejecutar proceso: la tarea a programar será la ejecución de un proceso de una aplicación concreta. Esta opción está pensada para la ejecución de procesos para el mantenimiento de la aplicación. El proceso será ejecutado en el Servidor. Sus parámetros específicos son: Aplicación: nombre de la aplicación de la que ejecutaremos un proceso. Procesos: especificación del proceso a ejecutar. Solamente estarán disponibles aquellos procesos del proyecto que sean públicos y cuyo origen sea ninguno. La Periodicidad se refiere al momento en el que se ha de ejecutar la tarea. Las opciones son: • Absoluto (Fecha/Hora concreta): la tarea se ejecutará un día y hora concretos. Es decir, será ejecutada una sola vez. Parámetros complementarios: Fecha: día, mes y año en que la tarea ha de ser ejecutada. Para facilitar su especificación, pulsando el botón que se encuentra dentro del control de edición aparecerá un calendario para su selección. Hora: hora en la que la tarea debe ser ejecutada. Con las teclas de movimiento del cursor izquierda y derecha se puede desplazar entre la hora, los minutos y los segundos, y con las teclas de movimiento del cursor arriba y abajo cambiar los valores del elemento seleccionado. • Diario: la tarea será ejecutada todos los días a una hora determinada. Parámetros complementarios. Hora: hora en la que la tarea debe ser ejecutada. Con las teclas de movimiento del cursor izquierda y derecha se puede desplazar entre la hora, los minutos y los segundos, y con las teclas de movimiento del cursor arriba y abajo cambiar los valores del elemento seleccionado. Examinar 536 537 VELAZQUEZ VISUAL • Semanal: la tarea será ejecutada cada semana en un día y hora concretos. Parámetros complementarios: Día de la semana: en el que la tarea debe ser ejecutada (de lunes a domingo). Hora: tiene las mismas especificaciones comentadas para la opción Absoluto. • Mensual: la tarea será ejecutada cada mes un día y a una hora concretos. Parámetros complementarios: Día del mes: en el que la tarea debe ser ejecutada (del 1 al 31). Hora: tiene las mismas especificaciones comentadas para la opción Absoluto. • Anual: la tarea será ejecutada cada año a una hora de un día de un mes concreto. Parámetros complementarios: Día del mes: en el que la tarea debe ser ejecutada (del 1 al 31). Mes: en el que la tarea debe ser ejecutada (de enero a diciembre). Hora: tiene las mismas especificaciones comentadas para la opción Absoluto. • Cada cierto tiempo: tiene los siguientes parámetros complementarios: Horas: tiene las mismas especificaciones comentadas para la opción Absoluto. Minutos: tiene las mismas especificaciones comentadas para la opción Absoluto aplicado a los minutos. Modificar tarea Para modificar una tarea basta con seleccionarla, pulsar con el botón derecho del ratón y seleccionar en el menú contextual la opción Modificar tarea (o seleccionarla y ejecutar la opción del menú Editar/Tareas/ Modificar). Suprimir tarea Tareas ejecución Para eliminar una tarea basta con seleccionarla, pulsar con el botón derecho del ratón y seleccionar en el menú contextual la opción Suprimir tarea (o seleccionarla y ejecutar la opción del menú Editar/Tareas/Suprimir). El servidor de aplicaciones guarda la configuración de las tareas programadas en el archivo tareas.vuf, de forma que es importante hacer copias de seguridad de este archivo para prevenir modificaciones accidentales, o en caso de reinstalar el servidor conservar y recuperar los datos anteriores sobre tareas. 11.10.2. Pestaña Tareas ejecución En esta pestaña se podrán consultar aquellas tareas que están siendo o han sido ejecutadas. 11 En ella se muestra la siguiente información: Tarea: tipo de tarea ejecutada. Aplicación: nombre de la aplicación sobre la que se ha ejecutado la tarea. Observaciones: si se trata de una copia de seguridad se mostrará el directorio donde ésta ha sido almacenada. Si se ha ejecutado una regeneración de índices se mostrará el nombre de la tabla de datos que ha sido regenerada. Si se trata de la ejecución de un proceso se mostrará el nombre del proceso ejecutado. Inicio: día y hora de inicio de la tarea. Fin: hora de finalización de la tarea. 11.11 Historial del servidor Se trata de una aplicación incorporada al Servidor que, como cualquier otra aplicación Velázquez Visual, podrá ser atacada con el Navegador Velázquez Visual aunque solamente por todos aquellos usuarios dados de alta en el Servidor que sean Supervisores. Su utilidad es la de monitorear (visualizar en el monitor del equipo) los enganches y trabajos realizados por los usuarios en las aplicaciones abiertas en el Servidor. Cada vez que un usuario abre una aplicación del Servidor se genera un enganche, y la información de cada trabajo que éste ejecute en la aplicación será almacenada en esta aplicación. Dado su carácter de consulta no es posible la generación, modificación o la eliminación de fichas por parte del usuario que la ejecute. Es el propio Servidor quien se encarga de su mantenimiento. Con esta aplicación podremos obtener información sobre los enganches y trabajos realizados en las aplicaciones del Servidor, así como el control de enganches y trabajos realizados por usuario dado de alta en el Servidor. Servidor de aplicaciones 538 539 VELAZQUEZ VISUAL 11.11.1. Opciones de menú Las opciones que encontramos en el área derecha de la aplicación Historial del servidor son las siguientes: Enganches activos: muestra una lista con todos los enganches activos en el momento de la consulta. 11 Finalizados entre fechas: presenta una lista con todos los enganches finalizados entre límites de fecha desde-hasta. Por usuario: aparece un cuadro de diálogo para la selección de un usuario del Servidor y presenta todos los enganches realizados por él: Por aplicación: presenta un cuadro de diálogo para la selección de una de las aplicaciones del Servidor y presenta todos los enganches realizados a la misma. Los enganches que están activos en el momento de la consulta serán destacados en color azul. Al editar la ficha de cualquier enganche se incluirá en el formulario una lista con todos los trabajos realizados durante ese enganche. Servidor de aplicaciones 540 541 VELAZQUEZ VISUAL Para todas las opciones de menú vistas, la información que se presentará en las rejillas después de disparar dichas opciones será la siguiente: IP Cliente: dirección IP de la máquina desde la que se ha realizado el enganche. Usuario: nombre del usuario que ha realizado el enganche. Si una aplicación no tiene especificada la petición de usuario el dato será presentado en blanco. Nombre completo: nombre completo del usuario que ha realizado el enganche. Si una aplicación no tiene especificada la petición de usuario dicho dato será presentado en blanco. Aplicación: nombre de la aplicación objeto del enganche. Directorio: senda de la aplicación objeto del enganche. Fecha inicio: fecha en la que se ha generado el enganche. Hora: hora en la que se ha generado el enganche. Fecha fin: fecha en la que ha finalizado el enganche. Cuando se consultan los enganches activos esta columna no aparecerá. Hora: hora en la que ha finalizado el enganche. Cuando se consultan los enganches activos esta columna no aparecerá. Las opciones de menú del área izquierda del Historial del servidor son las siguientes: 11 Enganches: muestra el área derecha Enganches con las opciones de menú vistas anteriormente (Activos, Finalizados entre fechas, Por usuario y Por aplicación). Trabajos período: presenta un cuadro de diálogo en el cual se pide una fecha de inicio y de fin, así como una hora inicial y final (en Horas y Minutos). El resultado será una rejilla con todos los trabajos realizados en la fecha y entre las horas especificadas. Trabajos última hora: se presentará una rejilla con todos los trabajos realizados durante la hora previa a la de la ejecución de esta consulta. Servidor de aplicaciones 542 543 VELAZQUEZ VISUAL En cualquier consulta de trabajos, la información que se facilitará será: Aplicación: nombre de la aplicación objeto del enganche. Usuario: nombre del usuario que ha realizado el enganche. Si una aplicación no tiene especificada la petición de usuario el dato será presentado en blanco. IP: dirección IP del equipo utilizado por el usuario. Tipo: tipo de trabajo efectuado (búsqueda, alta de ficha, proceso, etc.). Descripción: presenta un texto descriptivo del trabajo efectuado. Inicio: fecha y hora de inicio del trabajo. Fin: fecha y hora de finalización del trabajo. Nº operaciones: número de operaciones que ha generado el trabajo en el Servidor (modificaciones de fichas). Más opciones de menú disponibles en el área izquierda de la aplicación son las siguientes: Usuarios: se presentará una rejilla con todos los usuarios dados de alta en el Servidor y que muestra el nombre y el nombre completo de cada uno de ellos. Cuando hacemos doble clic sobre cualquiera de ellos se muestra el formulario del usuario y dos pestañas: una denominada Enganches y otra Enganches/Aplicación. La pestaña Enganches presenta una rejilla con los distintos enganches realizados por el usuario. Dicha rejilla aporta información sobre la IP del usuario, la aplicación, el directorio y las fechas y horas de inicio y fin. Por otra parte la pestaña Enganches/Aplicación muestra en una rejilla los datos mencionados en la pestaña anterior encarpetados por aplicación. 11 Si aún no ha finalizado el enganche aparecerá el texto Activo. Localizar usuario: se presentará un localizador en el que, si se selecciona un usuario, se presentará un formulario con su ficha correspondiente. En dicha ficha podemos consultar los enganches efectuados, con posibilidad de encarpetar la información de los enganches por cada aplicación, tal y como sucedía en la opción de menú anterior. Aplicaciones: muestra una rejilla con todas las aplicaciones que hemos instalado en algún momento en el Motor: Utilidades: muestra en el área derecha las siguientes opciones de menú: Cambiar nº días a conservar: podemos especificar cuántos días se desea conservar los datos del historial. Eliminar historiales atrasados: borrará todos los historiales anteriores al número de días especificados en la opción Número de días de historial a conservar. 11.11.2. Configuración básica del Historial del servidor En las opciones de menú Cambiar nº días a conservar dicho mapa, configuramos el tiempo que ha de ser guardado, por ejemplo, 60 días. Servidor de aplicaciones 544 545 VELAZQUEZ VISUAL Asimismo, en el Servidor es conveniente crear una nueva tarea programada (dentro de la pestaña Tareas programadas del área tareas) que active el único proceso que es público de dicho mapa: LIMPIAR-ANTERIORA–FECHA: 11.12 Configuración Configuración de los dominios web Si un Servidor dispone del Servidor HTTP puede servir las Páginas HTML que se encuentren dentro del directorio definido en la pestaña HTTP del cuadro de diálogo Configuración que aparece al seleccionar la opción de menú Editar/Configuración (o bien pulsando el botón Configuración de la barra de herramientas). Adicionalmente, dicho servidor HTTP puede gestionar más de un dominio web. Para definir los dominios seleccionamos la opción de menú Editar/Dominios Web. Se presentará, entonces, el cuadro de diálogo Dominios web: 11 Para crear un nuevo dominio debemos pulsar el botón Añadir. Se mostrará el cuadro de diálogo Propiedades del dominio web que tiene las siguientes propiedades: Servidor de aplicaciones Añadir Examinar Suprimir Editar Dominio: nombre del dominio. Directorio de la Web: directorio de la web por defecto para ese dominio. Podemos seleccionar el que queramos pulsando el botón Examinar. Archivo Html por defecto: nombre del archivo html que presentaremos por defecto para ese dominio. Mediante los botones Suprimir y Editar es posible, respectivamente, eliminar el dominio web o mostrar el cuadro de diálogo Propiedades del dominio web del dominio web seleccionado. 546 547 VELAZQUEZ VISUAL A continuación se va a realizar un ejercicio práctico para revisar estos conceptos teóricos: e Ejemplo: Creación de dos dominios web Vamos a servir dos dominios en una misma máquina: www.dominio1.com (cuyas páginas web se encuentran en C:\Web\Dominio1 y tiene como página inicial indexd1.htm) y www.dominio2.com (cuyas páginas web se encuentran en C:\Web\Dominio2 y tiene como página inicial indexd2.htm). Para ello decidimos utilizar los dominios web del Motor. Los pasos a realizar son los siguientes (para realizar el ejercicio completo deberíamos crear previamente la carpetas Web, y dentro de ésta las carpetas Dominio1 y Dominio2, así como las páginas indexd1.htm e indexd2.htm). Agregar Seleccionamos la opción de menú Editar/Dominios Web para que se muestre el cuadro de diálogo Dominios web. En dicho cuadro de diálogo pulsamos el botón Agregar y en el cuadro de diálogo Propiedades del dominio web introducimos las propiedades correspondientes al primero de los dominios: Dominio: www.dominio1.com Directorio de la Web: C:\Web\Dominio1\ Archivo Html por defecto: indexd1.htm Una vez pulsado el botón Aceptar, volvemos a pulsar el botón Agregar e introducimos las propiedades correspondientes al segundo dominio. 11 Servidor de aplicaciones e ADVERTENCIA De esta manera, cuando un visitante de la web teclea cualquiera de los dos dominios, ambos irán dirigidos al Motor, y éste resolverá en función de las propiedades que se han definido para cada uno de ellos. 11.13 Navegador Velázquez Visual El Navegador de Velázquez Visual permite ejecutar aplicaciones de Velázquez Visual cargadas en un Servidor de aplicaciones de Velázquez Visual. La conexión con el Servidor ha de hacerse a través de una dirección IP, bien en una red local, o bien vía telefónica. Asimismo, también es un navegador web y un cliente de disco (permite acceder a las carpetas compartidas en el Servidor). 11.13.1. Instalación del Navegador La instalación del Navegador Velázquez Visual es sencilla, ya que el asistente de instalación indica los pasos a realizar. Una vez instalado, se crea un fichero ejecutable, denominado iRunner.exe, situado en la senda C:\Archivos de Programa\Atica\Velazquez\Program. Cuando se actualiza el Motor con una nueva versión es posible actualizar los puestos clientes que disponen de un Navegador de versión anterior a la nueva versión del Servidor. Dicha actualización del Navegador se producirá Para que los dominios web en el Motor estén bien definidos se debe tener en cuenta lo siguiente: En la propiedad Dominio del cuadro de diálogo Propiedades del dominio web debe escribirse el dominio sólo con www (es decir, para uno de los dominios del ejercicio anterior será www.dominio1.com). El proveedor de servicios de internet que tiene registrado el dominio debe redirigir el dominio a la IP del router (en caso de disponer de una conexión ADSL) de la siguiente manera: (utilizando el ejemplo del ejercicio anterior sería: http://Iprouter/dominio2.com /indexd2.hml). 548 549 VELAZQUEZ VISUAL cuando accedamos a alguna de las aplicaciones que sirva el Servidor. En ese momento aparecerá un cuadro de diálogo que pregunta si queremos realizar la actualización: ADVERTENCIA Las actualizaciones de versión del Navegador no afectan a los iconos de acceso directo. Es decir, si cuando actualizamos el navegador, lo hacemos en un directorio distinto del que teníamos la versión anterior, debemos revisar los accesos directos que teníamos creados y apuntarlos al nuevo Navegador. Si se pulsa el botón No se mostrará un nuevo cuadro de diálogo indicando la necesitad de actualizarse, y por la que no podremos acceder a la aplicación solicitada. Si pulsamos el botón Sí aparecerá el cuadro de diálogo Actualización de Navegador Velázquez Visual versión X.X que mostrará la senda en la que esté instalado dicho Navegador. Con el botón Examinar podremos modificar la ruta (en el caso de no estar instalado en la senda por defecto, es decir, C:\Archivos de Programa\Atica\Velazquez\Program). 11.13.2. Interfaz del Navegador Una vez arrancado el Navegador se mostrará una ventana que está dividida en las siguientes partes. El área [a] corresponde a la barra de menús, el área [b] corresponde a la barra de herramientas y, finalmente, la opción [c] es el área de visualización (tanto de aplicaciones, como de páginas web, como de carpetas compartidas). 11 11.13.3. Barra de menús Antes de pasar a las opciones de la barra de menús indicar que sólo se van a explicar aquellas opciones propias del Navegador, ya que el resto se han mencionado al hablar del Ejecutor de proyectos (vRunner). Menú Archivo En este menú existen las siguientes opciones: Ver estado cachés..., que lanza el cuadro de diálogo Estado de las cachés y que muestra para cada tabla de la aplicación el número de fichas almacenadas en caché hasta ese momento. Servidor de aplicaciones 550 551 VELAZQUEZ VISUAL Dormir aplicación: esta opción aparece siempre y cuando se realiza la conexión a internet a través de un módem. Si durante la ejecución de una aplicación cualquiera dormimos ésta, se desconectará la conexión y se minimizará el Navegador en la barra de herramientas. Haciendo doble clic sobre el icono del mismo en la barra de herramientas estableceremos de nuevo la conexión telefónica con el Servidor y se abrirá la aplicación en el punto donde la habíamos dejado durmiendo. Menú Editar En este menú contamos con las siguientes opciones: Enviar telegrama...: si previamente hemos creado Grupos de mensajería es posible enviar telegramas a otros usuarios desde el Navegador. Cuando se ejecuta esta opción se presenta el cuadro de diálogo Enviar telegrama: 11 Servidor de aplicaciones Las opciones del cuadro de diálogo son las siguientes: Seleccionar todos: el telegrama a enviar será recibido por todos los usuarios que formen parte del Grupo de mensajería (los que aparecen en el área Destinatarios). Seleccionar los activos: el telegrama a enviar será recibido por todos los usuarios del Grupo de mensajería que estén en ese momento conectados. Deseleccionar todos: desmarca los usuarios del Grupo que se hayan marcado para enviar el telegrama. Mensaje: área en el que se escribe el texto del telegrama. Una vez pulsemos el botón Enviar los usuarios seleccionados como destinatarios recibirán un cuadro de diálogo Telegrama recibido que contiene el nombre del remitente junto con el texto del telegrama. Seleccionar todos Seleccionar los activos Deseleccionar todos 552 553 VELAZQUEZ VISUAL Ver telegramas..: permite visualizar los telegramas recibidos por el usuario en el caso de tener seleccionada la propiedad Telegramas-Se presentan cuando se desee en la pestaña Opciones dentro de la opción de menú Ver > Personalizar (se verá más adelante). Explorar Web: abre el panel correspondiente al navegador web. Explorar equipo: permite visualizar las carpetas compartidas por los servidores de Velázquez Visual a los que el usuario tiene acceso. Al seleccionar esta opción se mostrará una ventana dividida en cuatro partes: Los dos paneles de la parte superior muestran para cada uno de los servidores Velázquez Visual a los que está conectado el usuario (panel izquierdo) las carpetas y ficheros a los que tiene acceso (panel derecho). 11 Servidor de aplicaciones Los dos paneles de la parte inferior son los correspondientes a un explorador de Windows del equipo del usuario. A continuación realizaremos un ejemplo de conexión al Servidor de disco. Ejemplo: Conexión a un Servidor de disco Velázquez El usuario Usuariodos desea crear una conexión con el Servidor de disco de la empresa. Para ello se siguen los siguientes pasos: Selecciona desde el Navegador la opción de menú Editar/Explorar equipo. Se muestra la ventana del Navegador con los cuatro paneles vistos anteriormente. Sobre el panel superior izquierdo de la ventana pulsa con el botón derecho del ratón y selecciona, en el menú contextual que aparece, la opción Añadir servidor... Al seleccionar esa opción se muestra el cuadro de diálogo Servidor de disco de Velázquez. En dicho cuadro el usuario rellena las propiedades: e 554 555 VELAZQUEZ VISUAL e Las propiedades del cuadro de diálogo son las siguientes: Nombre o IP del servidor: nombre del Servidor (o IP) al que se conecta el usuario. Nombre usuario: nombre que tiene el usuario en el Servidor Velázquez Visual, es decir, la que utiliza para acceder a las aplicaciones. Contraseña: contraseña del usuario en el Servidor Velázquez Visual, es decir, la que utiliza para acceder a las aplicaciones. Pedir contraseña en cada sesión: si se marca este check le aparecerá el cuadro de diálogo Control de acceso, que le pedirá la contraseña del usuario. Descripción: la que tiene el Servidor. Dicha descripción aparecerá en la lista de servidores. Una vez se pulsa el botón Aceptar, aparecerá representado en el panel superior izquierdo el Servidor, y en el panel superior derecho las carpetas y ficheros a los que accede el usuario. 11 Servidor de aplicaciones e Seleccionando el icono del Servidor del panel superior izquierdo y pulsando con el botón derecho del ratón es posible tanto borrar (Eliminar servidor) como modificar (Modificar servidor) las propiedades del Servidor seleccionado. Menú Favoritos Favoritos es una lista donde podemos almacenar tanto aplicaciones Velázquez como URL a las que accedamos con frecuencia. En este menú contamos con las siguientes opciones: Agregar a Favoritos: agrega a la lista de favoritos la aplicación de Velázquez Visual o URL actual. Al seleccionar esta opción se presentará el cuadro de diálogo Agregar a Favoritos. 556 557 VELAZQUEZ VISUAL En dicho cuadro de diálogo podemos dar un nombre descriptivo a la página o aplicación que vayamos a agregar a Favoritos y especificar en qué carpeta queremos almacenarlo. Organizar Favoritos: nos permite organizar por carpetas todas las páginas o aplicaciones agregadas en favoritos. Al seleccionar esta opción se muestra el cuadro de diálogo Organizar Favoritos. En dicho cuadro de diálogo nos es posible cambiar el nombre, tanto de carpetas, como de páginas agregadas a favoritos, así como crear nuevas car- 11 petas, cambiar su ubicación o eliminarlas. Finalmente, en esta opción de menú pueden aparecer los Favoritos que no estén guardados en ninguna carpeta. Menú Ver En este menú tenemos las siguientes opciones: Display Out: si en la aplicación ejecutamos funciones de Correo electrónico podemos activar esta opción de menú para ver los mensajes enviados y recibidos. Una vez seleccionada se mostrará el cuadro de diálogo EMail. En ella se informa sobre los mensajes enviados y recibidos, número de mensajes que no han podido ser enviados y sobre el estado de la conexión. Personalizar...: permite personalizar barras de herramientas, así como otros datos de entorno del Navegador. Al seleccionar esta opción se presenta el cuadro de diálogo Personalización: Servidor de aplicaciones 558 559 VELAZQUEZ VISUAL En el mencionado cuadro de diálogo aparecen las barras de herramientas por defecto del Navegador. Si queremos crear una nueva barra de herramientas se debe pulsar el botón Nueva dentro de la pestaña Toolbars. Para personalizar una barra de herramientas debemos hacer clic en la carpeta Comandos y mediante la técnica de arrastrar y soltar, mover el botón que se desee a la barra de herramientas. Para facilitar la localización de los botones, éstos han sido agrupados por categorías (Archivo, Editar, Árbol, Fichas, Lista, Navegante, Procesos, Ver, Ventana y Navegador). La pestaña más interesante es la de Opciones, que tiene las siguientes propiedades: 11 Servidor de aplicaciones • Formato de Números, Carácter separador: Miles: indica el carácter que se utiliza como separador de miles en campos numéricos. Decimales: indica el carácter que se utiliza como indicador de decimales en campos numéricos. • Milisegundos retardo: Autocompletar: permite, en campos NOMBRE de una tabla maestra, que al escribir en el control una cadena y transcurridos los milisegundos establecidos en esta opción, el programa presente automáticamente el primer registro de la tabla maestra cuyo campo nombre comience por dicha cadena. La parte añadida quedará seleccionada, con lo que, si el usuario prosigue la escritura, la parte seleccionada será sustituida por los nuevos caracteres que el usuario escriba. Localizadores: cuando el usuario escribe en el localizador una cadena a buscar, transcurridos los milisegundos especificados en esta opción se presentarán los registros encontrados en la rejilla. • Inicio: existen tres posibles modos de iniciar el Navegador: Abrir aplicación Velázquez: al ejecutar el Navegador se presentará el cuadro de diálogo Introduzca nombre del servidor que solicita la IP del servidor de aplicaciones Velázquez con el que conectarse. ADVERTENCIA Es importante que en ambos retardos no pongamos valores muy pequeños, ya que si no estarían refrescando la información cada muy poco tiempo, ralentizando el uso de la aplicación. También debemos tener en cuenta si el acceso lo realizamos a través de Internet o a través de una red local. En este último podremos poner valores menores que para Internet. 560 561 VELAZQUEZ VISUAL Explorador web: inicia el Navegador como un explorador web y cargará la página html de inicio especificada en las opciones de internet del sistema. Explorador del equipo: inicia el Navegador como un explorador de equipos, similar al explorador de Windows™. Ninguno: el navegador no se abrirá en ninguno de los tres modos anteriores. Será el usuario quien debe o bien ejecutar una aplicación Velázquez o bien abrir una página web. • Telegramas: Se presentan cuando llegan: si a un usuario le han enviado un telegrama éste le será mostrado en pantalla cuando llegue. Se presentan cuando se desee: el telegrama no será mostrado al usuario hasta que ejecute la opción Editar > Ver telegramas… Al recibir un telegrama se emitirá un aviso acústico (si está activada la opción siguiente) y se presentará en la barra de tareas del navegador un icono advirtiéndolo. Aviso acústico al recibir: si hemos activado esta opción se emitirá un pitido cuando recibamos un telegrama. • Hilo de control: tiempo en segundos, transcurrido el cual el Navegador debe enviar un pulso al Servidor de Aplicaciones para el refresco de los datos en notificaciones terciarias. Por ejemplo, el usuario A y el usuario B editan una misma ficha. El usuario A realiza cambios y acepta. Transcurridos los segundos especificados en esta opción se refrescarán los datos de la ficha editada por el usuario B. 11.13.4. Barra de herramientas La barra de herramientas por defecto del Navegador Velázquez Visual contiene los siguientes botones: Como en el apartado anterior, vamos a comentar aquellos botones especiales del Navegador. A continuación detallamos la acción que ejecuta cada uno de ellos: Ejecutar aplicación Ejecutar aplicación: muestra el cuadro de diálogo Introduzca nombre del servidor en el que se escribe el nombre o la IP del servidor al que se quiere conectar: 11 Una vez pulsamos el botón Aceptar se presenta el cuadro de diálogo Seleccione aplicación, que mostrará el listado de todas las aplicaciones que sirve el Motor. Cuando seleccionamos una aplicación y pulsamos el botón Aceptar aparece el cuadro de diálogo Control de usuario en el que el usuario escribe su nombre y su contraseña para acceder finalmente a la aplicación: Servidor de aplicaciones 562 563 Conectarse a Servidor de Ática Software Enviar telegrama Explorar equipo Atrás Adelante Detener Actualizar VELAZQUEZ VISUAL En el cuadro de diálogo Introduzca nombre del servidor, si el usuario pulsa el botón se conectará a un Servidor de Atica Software que, al presentar el cuadro de diálogo Seleccione aplicación, mostrará la aplicación Libros, que es un ejemplo de aplicación de Velázquez Visual. Enviar telegrama: presenta el cuadro de diálogo Enviar telegrama que hemos visto en el apartado anterior. Explorar equipo: presenta en una ventana la estructura de cuatro paneles, que comentamos anteriormente para acceder a las carpetas compartidas por el Servidor. A continuación mencionamos los botones correspondientes a la barra de herramientas Explorador: Inicio Inicio serie Marca inicio serie Atrás: si hemos abierto varias páginas en la misma ventana, cuando pulsemos este botón iremos a la página anterior a la actual. Adelante: si hemos abierto varias páginas en la misma ventana, cuando pulsemos este botón iremos a la página siguiente a la actual. Detener: detiene la carga de la página web. Actualizar: carga de nuevo la página web en curso. Inicio: abre la página que hayamos especificado como página principal en las Propiedades de Internet del sistema. Inicio serie: si en una misma ventana del explorador hemos abierto diferentes páginas, este botón retornará a la que hayamos marcado con una marca de inicio de serie (ver el siguiente botón), o, si no establecimos una marca, a la primera página abierta en dicha ventana. Marca inicio serie: la página en la que hayamos generado la marca será a la que retornemos si, en la misma ventana, pulsamos el botón de Inicio serie. Barra de direcciones: este control permite acceder directamente desde el Navegador a la dirección URL escrita en el mismo. Si este control es incluido en una barra de herramientas del Navegador siempre estará activo, por tanto, desde cualquier punto de la aplicación donde esté visible dicha barra de herramientas podrá dispararse el explorador web. Pulsando sobre el botón de este control se mostrará el historial de las distintas URL’s a las que se haya accedido a lo largo de esa sesión del Navegador. 11 11.14 Optimización de aplicaciones en Cliente-Servidor Si hemos desarrollado una aplicación y ésta se ejecuta en arquitectura de red local (utilizando el Ejecutor vRunner) dicha aplicación podrá ser instalada en el Servidor de aplicaciones Velázquez Visual sin realizar por ello ningún tipo de modificación. Sin embargo, hemos de tener en cuenta una serie de cuestiones que aumentarán el rendimiento de la aplicación (optimizarla) de cara a su instalación en el Motor, ya que los usuarios pueden estar conectados a la aplicación desde cualquier lugar a través de Internet. 11.14.1. Sockets TCP: retardos y optimización La comunicación entre máquinas se establece mediante sockets. Una vez establecida dicha comunicación, la información viaja distribuida en paquetes con un tamaño de unos 4 kb (aproximadamente). Por ejemplo: un conjunto de datos de 400 kb viajaría distribuido en unos 100 paquetes. Los sockets llevan, entre otros parámetros, las IP origen e IP destino, de modo que siempre alcanzan su destino: si un nodo falla en la comunicación otros nodos son interrogados para lograr el envío. Una vez establecida la comunicación (socket), el tiempo que los paquetes de información emplean en viajar es el mismo independientemente de que ocupen 4 kb o menos. Es en el establecimiento del socket donde se ralentiza la comunicación, ya que una vez establecida el traspaso de información es rápido, tardando más o menos según el canal por el que viajen los datos (enviar 1k es casi igual a enviar 4k). Por otro lado, en una red local el tiempo que un socket emplea en viajar es de unos 10 ms, mientras que a través de internet ronda los 250 ms, de ahí que las peticiones a través de internet sean mucho más lentas: se produce un retardo, y por lo tanto conviene generar el menor número de sockets posible: hemos de optimizar nuestras aplicaciones. Existen diversos factores que aumentan el número de sockets generados, por ejemplo, las rejillas en las que se presentan datos capturados mediante punteros indirectos. Por ejemplo: si a través de internet presentamos una rejilla con datos de la misma tabla se generan dos sockets, uno para la petición y otro para el envío de datos, de modo que la rejilla se presentaría en menos de un segundo. Sin embargo, si presentamos registros capturados mediante un puntero indirecto generamos tantos sockets como registros se presenten, de modo que si encontramos 100 registros, la rejilla tardaría 25 segundos en presentarse. Servidor de aplicaciones 564 565 VELAZQUEZ VISUAL 11.14.2. Optimizar el tamaño del mapa Cuando nos conectamos a un servidor de Velázquez éste nos envía la información del mapa de la aplicación, de modo que necesitamos optimizar el tamaño del mapa con el fin de que este traspaso sea lo más rápido posible. En el Servidor de aplicaciones podemos instalar tanto un fichero .map como un .vam, pero no pensemos que por instalar el .vam (que ocupa menos) realizamos optimización alguna, ya que el servidor convierte esos archivos a otro archivo .mgz, que es el que realmente nos envía, y que ocupa lo mismo hayamos instalado el .map o el .vam. Optimización de dibujos Hemos de reducir al máximo el tamaño de los dibujos que incluimos en el mapa, para lo cual en un programa de edición iremos reduciendo la paleta de colores del dibujo, cuidando que éste no pierda calidad. Esta reducción en la paleta hemos de realizarla paulatinamente, ya que si lo hacemos de golpe puede fallar el algoritmo de cálculo del programa de edición. Una vez hayamos reducido la paleta, con el programa de edición realizaremos una nueva compresión a formato RLE estándar (bmp) (cuidado: si no es RLE estándar puede que el editor de Velázquez rompa al llevar el dibujo al mapa) y la guardamos en disco para después abrir el editor y traernos la imagen retocada (opción “pegar desde”). Hemos de hacerlo así y no mediante “copiar y pegar”, ya que usando el portapapeles se reservan los primeros veinte colores para Windows y no se respeta la paleta de colores de la imagen retocada. Cuando reducimos el tamaño de una imagen (pensemos en todos los iconos que puede tener nuestra aplicación) lo ideal es reducirla a 16 colores (4 bits por pixel), ya que de este modo optimizamos la paleta al máximo. Si la imagen no queda del todo bien al reducirla a 16 colores podemos retocarla con el programa de edición. Aprovechamiento de los objetos Otra manera de controlar el tamaño de un mapa es el aprovechamiento de objetos. Por ejemplo: si una misma rejilla puede servirnos para presentar dos listados distintos, no tiene sentido crear una rejilla para cada listado. 11.14.3. Elementos que retardan una aplicación Cuando diseñamos una aplicación o trabajamos con ella a través de internet hay ciertos detalles que hemos de tener en cuenta, ya que ralentizan en gran modo su funcionamiento. Veámoslos: Visualización de datos obtenidos a través de punteros indirectos Supongamos una aplicación en la que tenemos las tablas LIBROS, AUTORES y EDITORES, siendo LIBROS histórica de las otras dos. Para presentar en una rejilla de la aplicación una lista de libros con su autor y editor el 11 proceso sería el siguiente: nuestra máquina genera un socket de petición de libros, devolviéndonos el servidor los primeros títulos a presentar (pongamos unos 50 del total, que podrían ser 1.000, por ejemplo). Una vez devueltos estos 50 primeros títulos, se generan un segundo y tercer sockets para pedir los autores y los editores de los títulos devueltos. En el ejemplo anterior presentamos en una rejilla punteros enlazados a maestro, muy optimizados en Velázquez Visual. Ahora bien, en absoluto es aconsejable presentar en una rejilla punteros indirectos, ya que estos enlaces no se encuentran optimizados, de modo que para presentar cada registro de la lista ha de generarse un socket. Si en la rejilla del ejemplo anterior presentáramos un campo capturado mediante un puntero indirecto, como son 1.000 registros tardaría 250 segundos en presentarse (¡más de cuatro minutos!). Si se trata de un formulario la presentación de datos capturados mediante punteros indirectos también ralentiza la apliación, pero como presentamos uno o pocos registros el efecto se nota menos. Filtros secuenciales Supongamos que en una rejilla en la que presentamos artículos queremos quedarnos sólo con aquellos cuyo campo agotado (booleano) tenga valor 1. Tenemos la opción de Filtrar, pero ésta es desaconsejable ya que filtrando generamos una petición (socket) al servidor, el cual devuelve una primera remesa con 50 o 100 registros que el irunner debe recorrer uno a uno, comprobando el contenido del campo agotado. Terminada esta primera remesa se genera otro socket en el que se piden más registros al servidor y que el irunner debe filtrar... así hasta acabar con toda la lista. Este proceso es muy lento a través de internet, por lo que es totalmente desaconsejable a no ser que sepamos con total seguridad que el número de registros es muy pequeño. También hemos de saber que cuando filtramos desde las propiedades de una búsqueda el proceso es algo más rápido, ya que el filtrado lo realiza el servidor (tercer plano). De todos modos, la forma óptima para resolver el problema anterior es mediante la opción de listas Rebuscar, indicando que quite de la lista aquellos registros cuyo campo agotado sea 0. Esto es así ya que Rebuscar trabaja con índices y no va leyendo los registros uno por uno. Rejillas iniciales donde se muestren objetos Todos los objetos del contenedor (objetos texto, dibujos, etc.) se tienen que pedir al servidor cada vez que van a ser presentados en una rejilla, de modo que por cada uno se genera un socket. Además no hay caché para los objetos del contenedor. Esto ocasiona que las rejillas en las que presentemos objetos del contenedor se van a ralentizar mucho si las presentamos a través de internet. Rejillas con totales En las rejillas hemos de evitar la introducción de pies, ya que esto fuerza a la lectura de toda la lista para el cálculo del pie. Servidor de aplicaciones 566 567 VELAZQUEZ VISUAL Condiciones activo / visible y enlaces a hermano Supongamos un formulario en el que establecemos una condición de activo para un botón (el botón Aceptar, por ejemplo) en las propiedades de un control de edición de un campo enlazado con un puntero indirecto. Como los punteros indirectos no se guardan en la caché de nuestra máquina, cada vez que escribamos sobre el control de edición se generará un socket para que nos devuelva el contenido del campo con el fin de determinar si se cumple la condición. Además, se generarán tantos sockets como condiciones hayamos introducido en el formulario. Es por esto que las condiciones activo / visible sobre campos capturados con puntero indirecto son totalmente desaconsejables trabajando a través de internet. Si el campo es enlazado a maestro o de la propia tabla no tenemos este problema, ya que sí son guardados en la memoria caché de nuestra máquina. Otro caso parecido al anterior aparece cuando trabajamos con campos enlazados a hermano contiguo. Supongamos un formulario en el que presentamos un campo enlazado a hermano contiguo y en el que tenemos botones Siguiente y Anterior que nos permiten movernos por los hermanos. Sería útil una condición de activo para el botón, de manera que éste se desactivara cuando no hubiera más hermanos (habríamos llegado a los “extremos”), pero verificar esta condición implicaría la generación de un socket cada vez que pulsamos una tecla (al pulsar una tecla se analizan todas las condiciones activo y visible), lo que la hace totalmente desaconsejable cuando trabajamos por internet. 11.14.4. Transacciones Cada vez que realizamos una operación que implique escritura en disco estamos realizando una transacción. Cuando lanzamos procesos que transaccionen nos encontramos con dos casos extremos: Puede que forcemos muchas transacciones pequeñas, lo que implica: Abrir y cerrar cada una de las transacciones, lo que provoca un tiempo de retardo por cada operación (desventaja). Dar de alta un registro en el Historial del servidor por cada transacción realizada, que también implica retardo (desventaja). Bloqueamos pocas fichas, de modo que apenas gastamos memoria en el servidor (ventaja), pero esto no siempre nos interesa. Supongamos, por ejemplo, un proceso en el que para una factura de un cliente realizamos una transacción por cada albarán, y justo cuando hemos facturado la mitad se cae el sistema. ¡Nos queda la otra mitad sin facturar y las transacciones que ya se han realizado no se deshacen! En casos como éste es aconsejable realizar una transacción por cada factura del cliente que englobe todos los albaranes. 11 Puede que forcemos una sola transacción grande, lo que implica: Un gasto considerable de memoria en el servidor (desventaja), ya que éste guarda en memoria las fichas bloqueadas por si hay que deshacer la transacción. Ojo: hay gasto de memoria cuando realizamos bajas o modificaciones, pero no cuando damos altas, ya que en este caso no hay ficha que memorizar por si hay que deshacer la transacción. Caso aparte son aquellas altas que desencadenan actualizaciones, ya que en este caso las fichas modificadas por la actualización sí se guardan en memoria. La velocidad a la que se realizan las operaciones es mucho mayor que en el primer caso (ventaja). Se genera una sola transacción, de modo que la pérdida de tiempo es mucho menor (ventaja). Se bloquean las fichas implicadas en la operación, lo que impide a otros usuarios de la aplicación trabajar con esas fichas (desventaja). No se bloquean todas las fichas a la vez, sino que se van bloqueando según trabajamos con ellas. Es decir, si en una transacción vamos a modificar 1.000 fichas, cuando llega a la 563 habrá bloqueado las primeras 563. 11.14.5. Optimizaciones para el rendimiento óptimo 11.14.5. en ejecución Procesos en tercer plano En nuestras aplicaciones podemos optimizar los procesos forzando que éstos se ejecuten en tercer plano, es decir, en el servidor. Veámoslo con un ejemplo. A continuación presentamos un proceso sin optimizar: El origen del proceso es una lista de la tabla CLIENTES y en él se pregunta si queremos o no actualizar los clientes. En caso afirmativo se recorre la lista y se modifica el campo FECHA ALTA. El proceso se ejecuta en primer plano, es decir, en nuestra máquina. Además, como incluye la función recorrer lista lectura / escritura, escribe en disco. Esto implica que sólo realice una transacción al recorrer el bucle (si no escribiera en disco realizaría tantas transacciones como registros encontrara, ralentizándose mucho más el proceso). Podemos optimizar este proceso partiéndolo en dos: uno que incluya el bucle y que se ejecute en tercer plano y otro encargado de lanzar el anterior y que se ejecute en primer plano. Veámoslo: Servidor de aplicaciones 568 569 VELAZQUEZ VISUAL El proceso que se va a ejecutar en el servidor es el siguiente: El proceso anterior tiene como origen una lista de la tabla CLIENTES y lo hemos identificado como UPDATE-CLIENTES-OPT-3P. El proceso encargado de lanzar el anterior es: Este proceso se ejecuta en primer plano, y en él incluimos la función Ejecutar proceso en la que seleccionamos el proceso UPDATE-CLIENTESOPT-3P, indicando que éste debe lanzarse en modo servidor. Al montar el proceso de este segundo modo (optimizado) la actualización de la lista se realiza mucho más rápido (diez veces más de media), ya que es el servidor quien la realiza, evitando que haya tráfico de información a través de la red. Al montar una estructura como la anterior hemos de tener en cuenta que en un proceso en tercer plano no podemos lanzar preguntas, presentar formularios, rejillas... sólo podemos usar la función de procesos Mensaje, que se suele usar para depurar. Sus contenidos se presentarán en la barra de mensajes del servidor de aplicaciones. Forzar una única transacción Supongamos un proceso para actualizar las ventas en una lista de clientes y que necesita confirmación por parte del usuario. Éste se compondrá de dos procesos: Uno lanzador, en primer plano y con origen una lista de la tabla CLIENTES. En él incluiremos la parte que interactúa con el usuario. PROCESO LANZADOR Otro en tercer plano (ACTUALIZAR-VENTAS-CLIENTES-3P en el proceso anterior) con origen ficha de la tabla CLIENTES, en el que cargamos el histórico de ventas de cada cliente, lo recorremos y realizamos la modificación necesaria en cada registro. 11 PROCESO EN TERCER PLANO Sólo ejecutamos esta última parte en el servidor, ya que necesitamos que, una vez dentro del bucle que recorre los clientes, nos pregunte si queremos actualizar sus ventas en el caso de que se cumpla una condición (en este ejemplo la condición es que pertenezca al aula 8). Para que se presente la pregunta ésta ha de ejecutarse en primer plano. Ahora bien, aunque parte de este proceso se ejecute en tercer plano, estamos generando una transacción por cada cliente (muchas transacciones pequeñas), lo que ralentiza su ejecución. Podemos optimizar este proceso forzando una única transacción global para todo el bucle. Para ello haremos que el proceso en primer plano escriba en disco, introduciendo una sentencia que implique modificación en la base de datos. Esta sentencia la incluiremos antes del primer bucle, de modo que todos los subprocesos que vengan después heredarán dicha transacción. Veámoslo: PROCESO OPTIMIZADO Al introducir la función de proceso Modificar ficha seleccionada estamos forzando a que el proceso escriba en disco, es decir, genere una transacción de la que dependerán todas las que se generaban antes y que vienen después. Fijémonos cómo en el fondo estamos “engañando” a Velázquez, ya que la sentencia que acabamos de introducir se encuentra bajo una condición que nunca se va a cumplir (también podríamos haber usado la función Modificar ficha seleccionada, o si el proceso no tuviera origen podríamos usar un Alta directa. La función Modificar variable global no implica escritura en disco). Veamos otro ejemplo. En este caso se trata de un proceso que importa un fichero ASCII a una base de datos de clientes. El proceso es el que se presenta a continuación: Servidor de aplicaciones 570 571 VELAZQUEZ VISUAL IMPORTACIÓN DE CLIENTES Mediante la función Alta directa (el origen del proceso es ninguno) forzamos a que se genere una única transacción (si no generamos una por cada cliente). A continuación abrimos el fichero y mediante un bucle vamos leyendo sus líneas. El siguiente paso es lanzar un proceso en tercer plano, que es el que realiza el proceso de importación (al ser en tercer plano la importación es mucho más rápida). A este proceso le pasamos los datos leídos en el fichero mediante una variable. Con esta técnica que acabamos de ver la velocidad de ejecución es mucho mayor, ya que generamos una única transacción y un solo alta en el historial. Ahora bien, tiene sus inconvenientes: al generar una única transacción consumimos mucha memoria en el servidor. Si nos quedamos sin memoria, Windows dará un aviso. Si el motor detecta que se queda sin memoria deshará la transacción, pero puede que no lo detecte y rompa, con lo que se tendrá que deshacer la transacción al arrancar de nuevo el motor. Otro inconveniente es que todas las fichas que intervienen en el proceso están bloquedas para todos los usuarios. Supongamos, por ejemplo, que en un proceso como el anterior actualizamos el precio de todos los artículos de una gran empresa. Mientras dure el proceso las fichas de los artículos permanecerán bloqueadas, con lo que las ventas estarían paradas ese tiempo porque no podríamos generar tickets de venta (éstos modifican el stock del artículo, pero como las fichas están bloqueadas no se pueden lanzar). La solución a los problemas anteriores pasa por trocear el proceso en varias transacciones. Veámoslo con el siguiente ejemplo, con el que importamos fotos (portadas) a una base de datos de libros: 11 Este proceso, que no transacciona, recorre el disco duro buscando extensiones de fotos y memorizando los ficheros en una variable global. Al llegar a 500 fotos llama al proceso IMPORT-PORTADAS-DE-LIBROS-TRN, que es el que realmente realiza la importación y que sí transacciona. PROCESO IMPORT-PORTADAS-DE-LIBROS-TRN Este segundo proceso toma la variable que le hemos pasado, la memoriza en una local, busca todos los ficheros y los importa. A continuación busca el libro, modifica la ficha seleccionada e importa la foto. Con esta estructura estamos generando una transacción por cada 500 fotos. De este modo la ejecución es rápida, ya que generamos pocas transacciones y a la base de datos le cuesta poco importar 500 fotos. Además bloqueamos menos registros y durante menos tiempo, a lo que hemos de añadir que el gasto en memoria es menor. Servidor de aplicaciones 572 573 VELAZQUEZ VISUAL 11.14.6. Efectos negativos no deseados Bucle en el cliente con las búsquedas, historial del servidor Fijémonos en el siguiente proceso con el que actualizamos las ventas de los clientes entre fechas: PROCESO ACTUALIZAR-VENTAS-CLIENTES-FECHAS NO OPTIMIZADO El origen del proceso es una lista de la tabla CLIENTES. Éste recorre en solo lectura la lista de clientes, y lanza la búsqueda VENTAS-ENTRE-FECHAS-CLIENTE, que devuelve las ventas de cada cliente y que es alimentada por las variables que hemos modificado antes de lanzarla. A continuación recorre la lista de artículos y modifica la cantidad de cada artículo. Este proceso genera una sola transacción, pero ocasiona un efecto no deseado: cada vez que se lanza la búsqueda (tantas veces como clientes contenga la lista) se genera un registro en el historial, lo que disminuye en gran modo el rendimiento del proceso además de cargar el historial con registros no deseados. ¿Cómo salvar este inconveniente? Para evitar este efecto aprovechamos que las búsquedas no son memorizadas en el historial cuando se lanzan en tercer plano, de modo que diseñamos un nuevo proceso, ACTUALIZARVENTAS-CLIENTES-FECHAS-3P, con origen ficha de la tabla CLIENTES. El proceso es el siguiente: PROCESO ACTUALIZAR-VENTAS-CLIENTES-FECHAS-3P Este proceso hemos de lanzarlo en tercer plano desde principal (ACTUALIZAR-VENTAS-CLIENTES-FECHAS), pero entonces nos encontraremos con otro detalle: estaremos generando tantas transacciones como clientes tenga la lista, de modo que al proceso principal hemos de añadirle una sentencia que implique escritura en disco bajo una condición que no se cumpla. El proceso totalmente optimizado sería: 11 PROCESO OPTIMIZADO Lista de registros en una tabla en memoria Supongamos un almacén en el que se realiza inventario mediante una pistola inalámbrica conectada al puerto serie de una máquina. De este modo generaremos una lista de registros en una tabla en memoria, pero tenemos un problema: las tablas en memoria no pueden compartirse en arquitectura cliente servidor, de modo que el motor no tiene acceso a la tabla del irunner. En parte podemos solventar este problema, ya que no se puede compartir una lista entera, pero sí un solo registro de la lista. Veámoslo en el siguiente proceso (no optimizado): PROCESO NO OPTIMIZADO Servidor de aplicaciones 574 575 VELAZQUEZ VISUAL En el proceso anterior, cuyo origen es una lista de una tabla en memoria (los códigos de barras leídos por la pistola), filtramos y ordenamos (permitido en este caso por tratarse de una tabla en memoria). A continuación multipartimos por el artículo, recorremos la lista, modificamos la ficha y disparamos el tubo de ficha que da de alta en la tabla MOV STOCKS la cantidad total a regularizar. De este modo (uno a uno) sí podemos compartir los registros de una tabla en memoria. El proceso anterior, que se ejecuta en primer plano, va bien si trabajamos en un red local, ¿pero qué ocurriría si el almacén que regulariza se encuentra en remoto? ¿y si además al dar de alta un registro en la tabla MOV STOCKS se disparan contenidos iniciales que evalúan varios punteros? En este caso, al lanzar el tubo de ficha en primer plano se generarían muchos sockets, que retardarían en gran modo la aplicación. Podemos optimizar el proceso ejecutando en tercer plano el siguiente subproceso con origen ficha de la tabla en memoria: PROCESO M-IMPUT-PISTOL-REGULARIZAR-3P De este modo la ejecución es mucho más rápida, ya que en tercer plano no se generan todos los sockets generados en primer plano. El proceso optimizado es el siguiente: 11 PROCESO OPTIMIZADO 11.15 Incorporación de un manual de ayuda propio para una aplicación Podemos utilizar nuestro propio manual de ayuda para una aplicación final, en lugar de usar el manual del ejecutor de proyectos/navegador de Velázquez Visual. Para ello crearemos el manual de ayuda con formato HLP, así como su fichero de contenidos correspondiente (.CNT). Ambos ficheros tendrán que ser llamados igual que el proyecto (por ejemplo, si hemos creado un proyecto llamado Gestion.map, tenemos que nombrar los ficheros Gestion.hlp y Gestion.cnt). Tendremos que almacenar el manual de ayuda en el directorio creado para la aplicación en el caché de disco de la máquina cliente. Cuando un cliente se conecta por primera vez con un servidor, automáticamente, dentro de la carpeta WINDOWS o WINNT (según el sistema operativo) de su disco local, se crea una carpeta llamada Vatp; dentro de ésta se generará una carpeta cuyo nombre será la IP del servidor conectado; dentro de esta carpeta se crearán subcarpetas por cada aplicación que haya sido ejecutada; dentro de la carpeta de la aplicación se incluirá el manual de ayuda correspondiente. En ejecución, cuando el usuario solicite ayuda se visualizará el fichero de ayuda que hayamos creado para la aplicación. Servidor de aplicaciones 576 577 VELAZQUEZ VISUAL Resumen Con el Servidor de Aplicaciones y HTTP de Velázquez Visual los usuarios podrán acceder con el Navegador a una aplicación a través de Internet con el protocolo VATP. Además éste podrá servir páginas web, tanto estáticas como dinámicas. Esto último quiere decir que las páginas web se presentarán con datos procedentes de la base de datos de la aplicación, generándose en tiempo real y quedando totalmente integradas con la aplicación. Podremos ver las páginas web tanto con el Navegador de Velázquez Visual como con cualquier explorador web. Esto implica también que podremos ver vía http, y en tiempo real, las actualizaciones y modificaciones hechas por Internet vía VATP y viceversa, las modificaciones que hagamos con el navegador podrán ser vistas al instante por un usuario con un explorador web. Para servir una aplicación debemos configurar primero el motor, instalar la aplicación en el servidor y luego configurar los usuarios, sus grupos, las máquinas y las carpetas que queramos que compartan, etc. Por defecto, creará un usuario, que será el Supervisor. Con el Servidor de Aplicaciones viene una aplicación denominada Historial del Servidor, donde se graban todos los movimientos que en éste se producen y que nos permite conocer su funcionamiento. Es conveniente la realización de copias de seguridad de los siguientes archivos para prevenir modificaciones accidentales, en caso de reinstalación del servidor, etc., y poder recuperar los datos referentes a la configuración del servidor: fuvm.vuf: aplicaciones abiertas, usuarios y sus propiedades, grupos de usuarios, etc. tareas.fuv: tareas programadas. carcom.vuf: carpetas compartidas. Con el Navegador nos conectaremos al Servidor de Aplicaciones para ejecutar una aplicación de la lista que nos presenta. Además podremos ver páginas web y explorar equipos para ver las carpetas compartidas. Debemos tener en cuenta a la hora de servir una aplicación que debemos optimizarla para el medio en que va a ser ejecutada: evitar el uso de funciones que llamen numerosas veces al servidor, cuidar dónde y cómo se ejecutan los procesos, la carga de datos que se enviará al usuario, la cantidad de cálculos requeridos, las transacciones que se realizan, etc.