Xojo Cloud es la opción de despliegue para apps web que está integrada de serie en el IDE y que funciona bajo un modelo de suscripción bajo el cual podemos modificar, de mes a mes, el plan que mejor se adecue para las apps alojadas (por ejemplo capacidad, ancho de banda, memoria), ubicación de servidores entre los disponibles, etc. ¿La ventaja fundamental de esta solución? La más evidente es que con un clic tu aplicación web estará disponible para todos los clientes de la misma, sin necesidad de lidiar con complejas configuraciones del servidor y, lo más importante, todas las cuestiones relacionadas con la seguridad de los mismos. Xojo Cloud es extremadamente seguro, de modo que sólo hemos de centrarnos en el código de nuestra solución… y nada más.
Ahora bien, cuando creamos nuestras aplicaciones web pensando en su despliegue bajo Xojo Cloud hemos de tener en cuenta ciertas cuestiones desde el punto de vista del código: acceso a bases de datos remotas o como hacemos para que el dominio que deseamos utilizar apunte a la dirección IP que se nos asigna. Pues bien, este tipo de información general es el que se recoge en el siguiente artículo y que se corresponde con la traducción al Español de la entrada original que, en inglés, puedes encontrar en el sitio de desarrollo de Xojo en este enlace.
Firewall
Cuando utilizamos clases que han de comunicarse fuera del servidor (como pueda ser el acceso a bases de datos o clases socket, por ejemplo), entonces tendrás que emplear la clase XojoCloud.FirewallPort
para abrir el puerto en primer lugar.
Dim fwp As New XojoCloud.FirewallPort(587, XojoCloud.FirewallPort.Direction.Outgoing)
fwp.Open() ' Esta llamada es asíncrona
If fwp.isOpen() Then
' Aquí tu app se comunica con el exterior
fwp.Close() ' Cierra el puerto al finalizar
End If
Instalar Fuentes
Para instalar tus propias fuentes, utiliza SFTP para copiarlas en la carpeta Fonts
de tu directorio home
.
Redirección de Nombre de Dominio
Cuando te suscribes a una cuenta Xojo Cloud se te asigna una dirección IP para tu servidor. De modo que puedas dirigir (o asociar) tu dominio a dicha dirección IP has de añadir un registro “A” en los ajustes DNS del panel de control de la empresa donde hayas adquirido el dominio, y apuntarlo a la dirección IP de tu servidor Xojo Cloud.
Una vez que se propague el cambio en el DNS, algo que puede llevar cierto tiempo en función de múltiples factores, entonces podrás acceder a tu servidor utilizando tu propio nombre de dominio en vez de únicamente la dirección IP.
Actualmente las apps web Xojo Cloud precisan que el directorio de la app web forme parte del URL. Esto significa que incluso tras mapear el nombre de domino, el URL tendrá una forma como la siguiente:
http://demos.xojo.com/EEWeb
Pero con algo de HTML adicional puedes redirigir el dominio principal a una app web específica.
Por ejemplo, pongamos por caso que el URL http://demos.xojo.com muestre automáticamente la app EEWeb. Puedes crear un archivo index.html
con este HTML:
<html><head><meta http-equiv="refresh" content="0; url=http://demos.xojo.com/EEWeb"></head></html>
Utiliza SFTP para subir a la ubicación “Web Applications” en tu servidor Xojo Cloud.
Ahora el url http://demos.xojo.com muestra automáticamente el ejemplo EEWeb. Ten en cuenta que tras la redirección aparecerá el URL completo (incluyendo el directorio en el que se aloja la app) dentre de la barra de direcciones del navegador.
Otra opción consiste en utilizar JavaScript en una página index.html
, y que sea dicho script el encargado de realizar el redireccionamiento:
<SCRIPT language="JavaScript">
window.location="http://app1.miDominio.com/red";
</SCRIPT>
No obstante sólo puedes utilizar estos trucos para realizar la redirección a una única app web.
Fecha y Hora del Servidor
Todos los servidores Xojo cloud son GMT 0 y no utilizan cambio de horario de verano/invierno.
Memoria disponible
Puedes consultar la cantidad de memoria disponible en el servidor Xojo Cloud instalando la app CloudTop en tu servidor y conectándote a ella. Esta utiliza el comando de terminal Top
para informar sobre la cantidad de memoria en uso.
Puedes crear la app CloudTop utilizando el proyecto Xojo incluido como parte de la carpeta de ejemplos en la distribución de Xojo, en la ruta Examples/Xojo Cloud/CloudTop
Código específico para Xojo Cloud
Puedes utilizar la constante TargetXojoCloud
para aislar el código que debería ejecutarse solamente cuando la app web esté ejecutándose sobre Xojo Cloud. Por ejemplo:
#If TargetXojoCloud Then
' Está funcionando sobre Xojo Cloud
#Else
' No está funcionando sobre Xojo Cloud
#End If
Acceso a Archivos
Utiliza el módulo SpecialFolder para acceder a carpetas específicas en Xojo Cloud. Estos son los métodos válidos a utilizar (otros devolverán Nil
en Xojo Cloud):
- Fonts
- SharedDocuments: La carpeta Shared_Documents del servidor web.
- Documents: La carpeta Documents dentro de la carpeta de la app web.
- Temporary: La carpeta tmp del servidor web.
Por ejemplo, para obtener un archivo en la carpeta Shared_Documents:
Dim myFile As FolderItem = SpecialFolder.SharedDocuments.Child(“MyFile.txt”)
Uso de Apps Externas y Librerías
Si tienes una app externa (línea de comandos) que quieras utilizar en combinación con la app web desplegada, entonces podrás copiarla en la carpeta Shared_Documents
(SpecialFolder.SharedDocuments) utilizando SFTP, ajustar sus permisos a “execute” y lanzarla empleando un Shell desde la app web Xojo. Esta app externa ha de combilarse para que funcione con CentOS de 32 bits y como auto-contenida, de modo que pueda funcionar sobre Xojo Cloud.
También puedes instalar librerías Linux (CentOS de 32 bits) en la carpeta Shared_Documents
de modo que puedas utilizarlas mediante el uso del comando Declare.
Contenido Estático
Xojo Cloud utiliza Apache, lo que significa que también puede servir contenido estático como imágenes y HTML. Cualquier contenido estático ha de estar ubicado en la carpeta wbe del servidor Xojo Cloud para que pueda ser accesible.
* Esta entrada ha sido escrita en MarkDown con Snippery y exportada a HTML desde la aplicación.