Ver más

Descarga la ayuda de Velneo vModApache en formato PDF
Descarga el manual de Velneo vModApache en formato pdf

Se trata del módulo Apache para soluciones web. Es un módulo web del servidor Web Apache que permite servir vía web diversos objetos de instancias de un proyecto de Velneo.

En la versión actual este módulo solamente está disponible para sistemas operativos Windows y Linux y es compatible solamente con la versión 2.4 de Apache.

No se podrá instalar Velneo vModApache ni en Windows XP ni en WIndows 2003. Si lo hacemos, el programa de instalación mostrará la advertencia siguiente y abortará la instalación:

“Sistema operativo detectado no soportado (Windows XP, 2003 no soportados). Se cancela la instalación.”

No se podrá instalar la versión de 64 bits de Velneo vModApache en sistemas operativos de 32 bits. Si lo hacemos, el programa de instalación mostrará la advertencia siguiente y abortará la instalación:

“No se podrán instalar componentes de 64 bits en sistemas operativos de 32 bits: Está instalando un ejecutable de 64 bits en un equipo de 32 bits, que no soporta esta arquitectura.”En la versión actual el módulo sirve procesos, dibujos y campos de tipo objeto dibujo.

Modo básico de funcionamiento del módulo Velneo vModApache

1) Al iniciar el servidor web Apache se inicia el módulo, el cual conecta con el/los Velneo vServer.

2) Un navegador (IExplorer, Mozilla, etc.) hace una petición al servidor web de Apache.

3) Dependiendo de la url, el módulo Velneo vModApache procesa esa petición (según lo que hayamos especificado en la configuración del servidor web Apache). Si la petición no la procesa el módulo, se la pasa a Apache.

4) El módulo Velneo vModApache devuelve la salida, ya sea el resultado de un proceso (página web) o una imagen al servidor web Apache.

5) El servidor web Apache envía la salida al navegador.

Esta configuración permite usar todas las funcionalidades del servidor web de Apache y distribuir la aplicación de Velneo como queramos (no es necesario que el servidor web Apache esté en la misma máquina que Velneo vServer).

Además Velneo vModApache es multi-hilo, por lo que es posible atender a multitud de peticiones web de forma simultánea con un solo enganche.

Desde la web podremos ejecutar, básicamente, procesos que retornarán el código html a servir. Esos procesos, en última instancia, retornarán una cadena texto con el código html, mediante el comando de instrucción de proceso Set dato de retorno del proceso.

Para poder servir páginas web desde aplicaciones de Velneo necesitaremos:

Descargar, instalar y activar Velneo vServer.

Descargar e instalar el módulo Velneo vModApache.

No se podrá instalar Velneo vModApache ni en Windows XP ni en WIndows 2003. Si lo hacemos, el programa de instalación mostrará un aviso y abortará la instalación.

No se podrá instalar la versión de 64 bits de Velneo vModApache en sistemas operativos de 32 bits. Si lo hacemos, el programa de instalación mostrará un aviso y abortará la instalación.

No debemos instalar un componente de Velneo de 64 bits en una carpeta donde tengamos instalados compoonentes de 32 bits ni viceversa.

Descargar e instalar la versión 2.4 del servidor Apache para 32 bits y configurar en el archivo de configuración de Apache (httpd.conf) la carga del módulo Velneo vModApache.

Desarrollar e instanciar un proyecto que contendrá los procesos que, ejecutados desde la web, retornarán el código html a servir.

Configurar en el archivo de configuración de Apache (httpd.conf) las directivas de virtualhost o location para el servicio de páginas de Velneo.

A continuación iremos explicando cada uno de estos pasos.

Descargar, instalar y activar Velneo vServer

Encontrarás toda la información en el capítulo dedicado a Velneo vServer.

Descargar e instalar el módulo Velneo vModApache

Accede a la página de descargas de este sitio web, descarga el producto e instálalo en la máquina donde vayas a instalar el servidor Apache. En este punto aclarar que el servidor Apache y Velneo vServer no tienen por qué estar en la misma máquina; pueden estar en máquinas diferentes. Además, tal y como se comenta al comienzo de este capítulo, desde un único servidor Apache podemos servir páginas de distintos servidores de Velneo.

Descargar e instalar el servidor Apache 2.4 y configurar en el archivo de configuración de Apache (httpd.conf) la carga del módulo Velneo vModApache

El nombre del archivo correspondiente al módulo vModApache se llama llama mod_velneo.so; éste no es instalado en el directorio de módulos de Apache, sino que se instala en el directorio de Velneo por defecto (C:\Archivos de programa\Velneo\); el motivo de ello es que dicho módulo usa una serie de librerías que son instaladas en dicho directorio.

Por tanto, para declarar su carga, debemos incluir la senda completa del mismo y entrecomillarla si ésta contiene espacios en blanco:

#Carga el módulo de Velneo
LoadModule velneo_module "C:/Archivos de programa/Velneo//mod_velneo.so"

Desarrollar e instanciar un proyecto que contendrá los procesos que, ejecutados desde la web, retornarán el código html a servir

Consultar en la zona info el capítulo dedicado a Velneo vDevelop.

Configurar en el archivo de configuración de Apache (httpd.conf) las directivas de virtualhost o location para el servicio de páginas de Velneo

Podremos, o bien, establecer una directiva de location, o bien una directiva de virtualhost.

La declaración de una directiva de location sería:

<Location /senda_base>
setHandler velneo
Vrl vatp://usuario:contraseña@servidor[:NUM_PUERTO]/ID_INSTANCIA
</Location>

Donde:

senda_base será la senda base para la web del proyecto a servir.

En el parámetro Vrl se indicará la VRL del servidor, usuario, contraseña e identificador de la instancia que va a ser atacada vía web.

Si el servidor con el que nos conectamos no tiene activado el protocolo VATPS en al Vrl especificaremos “vatp://” si lo tiene, tendemos que especificar “vatps://”.

Si el usuario especificado no tiene contraseña, no se incluirá dicho parámetro, pero sí los dos puntos: …usuario:@SERVIDOR…”

En el caso de que el usuario o la contraseña incluya caracteres especiales tales como @, \, etc. éstos no podrán ser escritos directamente en la cadena sino que tendrán que ir codificados en su equivalente html (%CODIGO_CARACTER). Ejemplo:

Ejemplo: Si la contraseña del usuario es 123@45, la especificaríamos así: 123%4045

Si el número de puerto del servicio VATP es el 690, no habrá que especificarlo tampoco en la VRL, ya que éste es el puerto por defecto para el servicio.

Ejemplo

#Ejemplo de directivas location Velneo en httpd.conf

<Location /gestion>
setHandler velneo
Vrl vatp://web:2e3x4A1@localhost/GESTION
</Location>

Supongamos que en el proyecto de destino hemos creado un proceso llamado INDEX; la url para ejecutarlo sería:

http://IP_SERVIDOR/gestion/index.pro

Donde:

IP_SERVIDOR será la IP o el nombre del servidor donde está alojado el servidor apache.

gestion es la senda base que hemos especificado en el archivo de configuración de Apache.

index.pro Objeto a ejecutar de la instancia de Velneo, la extensión “.pro” lo identifica como un proceso.

Declaración de una directiva de virtualhost:

Esta podremos declararla tanto en el fichero httpd.conf como en el fichero httpd-vhosts.conf de Apache, en caso de hacerlo en el segundo, tendremos que asegurarnos que en el fichero httpd.conf se incluya la llamada al fichero httpd-vhosts.conf, mediante el comando:

Include conf/extra/httpd-vhosts.conf

Habitualmente este include suele venir declarado en el fichero pero a modo de comentario:

#Include conf/extra/httpd-vhosts.conf

Para habilitar la llamada simplemente habrá que quitarle el carácter #.

La directiva de virtualhost la declararemos del modo siguiente:

<VirtualHost *:número_puerto>
ServerName nombre_servidor
setHandler velneo
Vrl vatp://usuario:contraseña@servidor[:NUM_PUERTO]/ID_INSTANCIA
</VirtualHost>

Donde:

número_puerto será el número de puerto de escucha para la web.

nombre_servidor será el nombre del servidor virtual.

En el parámetro Vrl se indicará la VRL del servidor, usuario, contraseña e identificador de la instancia que va a ser atacada vía web.

Si el usuario especificado no tiene contraseña, no se incluirá dicho parámetro, pero sí los dos puntos: …usuario:@SERVIDOR…”

Si el número de puerto del servicio VATP es el 690, no habrá que especificarlo tampoco en la VRL, ya que éste es el puerto por defecto para el servicio.

Ejemplo

#Ejemplo de directivas virtualhost de Velneo
<VirtualHost *:80>
ServerName midominio.com
setHandler velneo
Vrl vatp://web:2e3x4A1@localhost/GESTION
</VirtualHost>

Supongamos que en el proyecto de destino hemos creado un proceso llamado INDEX; la url para ejecutarlo sería:

http://midominio.com/index.pro

Donde:

midominio.com será el nombre del dominio.

gestion es la senda base que hemos especificado en el archivo de configuración de Apache.

index.pro Objeto a ejecutar de la instancia de Velneo, la extensión “.pro” lo identifica como un proceso.

Una vez configurado el servidor Apache, lo reiniciaremos para que tome la nueva configuración y ya estará listo para servir la web de nuestro proyecto.

Los procesos ejecutados vía web han de ser ejecutados en primer plano, no pueden ser ejecutados en un plano diferente.

IMPORTANTE: Para conectarnos a un vServer con protocolo VATPS activado que produce excepciones (por ejemplo cuando nos conectamos a un vServer con un certificado autogenerado), debemos añadir la excepción en un fichero.

En Windows hay que añadirlo a la rama de registro:
HKEY_CURRENT_USER\Software\Velneo\SslExceptions
Añadiendo como claves alfabéticas (REG_SZ), las VRL’s correspondientes, con la clave vacía, por ejemplo:
subdominio.dominio.com:9999

En Linux la ruta del fichero es (en el usuario que lanza el componente):
$HOME/.config/Velneo/SslExceptions.conf

Por ejemplo, si queremos ignorar las excepciones cuando nos conectamos a localhost:6900, el fichero quedaría de la siguiente manera:
[General]
localhost:6900=””

En OSX, el fichero estará en ~/Library/Preferences y se llamará com.velneo.SslExceptions.plist.

A tener en cuenta sobre la configuración de instancias en Apache

Velneo vModApache comparte funcionalmente la mayoría de las características del componente Velneo vClient, por lo tanto:

  • Velneo vClient sólo puede ejecutar una única instancia de una solución.
  • Velneo vModApache funciona igual y sólo puede ejecutar una única instancia de una solución.

Vemos algunos ejemplos que aclaren su funcionamiento.

Tengo un Velneo vServer con dos soluciones:

SOLUCION_ERP
SOLUCION_CRM

En ese servidor tengo creadas las siguientes instancias:

INSTANCIA_EMPRESA_A de SOLUCION_ERP
INSTANCIA_EMPRESA_A de SOLUCION_CRM
INSTANCIA_EMPRESA_B de SOLUCION_ERP

¿Cómo puedo configurar la salida web de esta tres instancias con vModApache?

Puedes configurar con Virtualhost en el mismo Velneo vModApache a la vez las siguientes instancias ya que corresponden a 2 soluciones diferentes:

INSTANCIA_EMPRESA_A_ERP e
INSTANCIA_EMPRESA_A_CRM

Lo que no permite Velneo vModApache es configurar contra el mismo servidor varias instancias de la misma solución ya que se producirían conflictos a la hora de leer y/o grabar los valores de las variables y las tablas. Por ejemplo:

No se debe configurar en el mismo Velneo vModApache las siguientes instancias porque corresponden a la misma solución:

INSTANCIA_EMPRESA_A_ERP e
INSTANCIA_EMPRESA_B_ERP

Es posible tener en una misma máquina distintos servidores de Apache, cada uno atacando a una instancia diferente o incluso a la misma. Por ejemplo:

Puedes configurar dos servidores Apache diferentes en la misma máquina y en cada uno de ellos conectar una instancia diferente de la misma solución.

Apache 1 con instancia INSTANCIA_EMPRESA_A_ERP.
Apache 2 con instancia INSTANCIA_EMPRESA_B_ERP.

Configurar en el mismo Velneo vModApache muchas instancias tiene los siguientes inconvenientes:

Cada Velneo vModApache al igual que ocurre con Velneo vClient consume una cantidad de memoria que puede llegar a ser notable en función del tamaño de la aplicación y del uso de las cachés.

Si en la misma máquina instalamos múltiples instancias el consumo de memoria de ese vModApache puede llegar a ser elevado.

Las cachés que Velneo vModApache al igual que Velneo vClient que se liberan automáticamente para mantener la memoria a un nivel óptimo produciría que unas instancias penalicen la caché de otras.

Si un sólo Velneo vModApache tiene que gestionar múltiples peticiones de diferentes instancias, la carga de trabajo de unas puede penalizar el rendimiento del resto.

Por todo esto la configuración más óptima, escalable y recomendable es:

Configurar un servidor Apache por cada instancia o al menos un servidor Apache por cada grupo de instancias correspondientes a un cliente.

La recomendación no implica que, tal y como se indicó al principio del documento no sea posible configurar en el mismo Velneo vModApache varias instancias siempre y cuando sean todas ellas de soluciones diferentes.

Ver más:

Instalación en Linux
Nomenclatura de objetos en urls
Uso de ficheros adjuntos