Xojo Cloud: Más que simplemente alojamiento Web

A continuación encontrarás traducido al castellano el artículo escrito por Paul Lefebvre y publicado originalmente en el Blog oficial de Xojo.

Cuando piensas en Xojo Cloud es probable que creas que sólo se trata de alojar tus propias apps Xojo Web; pero Xojo Cloud ofrece varios servicios que también pueden ser útiles, incluyendo su uso con otros tipos de apps.

Notificaciones iOS

Xojo Cloud puede funcionar como sistema de Notificaciones Push de Apple (APNs) a la hora de gestionar las notificaciones push de iOS. Esto funciona tanto con las aplicaciones iOS de Xojo como con aquellas, también de iOS, que no se hayan creado con Xojo. Todos los servidores Xojo Cloud están preconfigurados para enviar notificaciones remotas. A diferencia de lo que ocurre con otros servidores de alojamiento en la nube, no hay cargo adicional por el uso de esta característica, y tampoco límite sobre la cantidad de notificaciones que puedes enviar.

Para enviar notificaciones remotas desde tus apps iOS tendrás que ir al sitio web de Desarrolladores Apple y hacer lo siguiente:

  1. Añadir la característica Push Notifications a tu App ID.
  2. Generar un certificado de Apple Push Services

En Xojo tendrás que activar el entitlement Remote Notifications para tu app en la sección Capabilities que encontrarás en la pestaña Avanzado del apartado iOS Build Settings.

El último paso consiste en subir el certificado de Push Services utilizando el panel de control de Xojo Cloud.

Con un acceso súper-sencillo y sin limitaciones en la cantidad de notificaciones, Xojo Cloud puede ser un APN genial a la hora de gestionar todas tus necesidades de notificaciones en iOS.

Servidores de Bases de Datos

La mayoría de apps desktop utilizan una base de datos de algún tipo y muchas de ellas son apps del tipo cliente/servidor que pueden hablar directamente con un servidor de bases de datos. Con Xojo Cloud puedes alojar servidores de bases de datos PostgreSQL o MariaDB/MySQL, y conectar con ellas usando un túnel SSH para mejorar la seguridad de acceso.

Configurar un servidor de bases de datos en Xojo Cloud es tan fácil como hacer clic sobre una casilla de verificación en el panel de control.

Puedes activar PostgreSQL o bien MySQL/MariaDB. Si tu servidor Xojo Cloud es lo suficientemente grande, incluso puedes alojar ambas.

Si quieres acceder a una base de datos alojada en Xojo Cloud desde una app desktop, entonces tendrás que activar la opción SSH Tunel y conectar con dicho túnel desde el ordenador. Un túnel SSH es una conexión segura entre tu ordenador y otro (en este caso el servidor Xojo Cloud), utilizado para la transmisión de datos sobre un puerto específico. En esencia, crea una conexión privada en internet que te permite ver tu servidor en el otro extremo y conectar con un servicio en particular.

Para crear un túnel entre un ordenador y tu servidor Xojo Cloud necesitas en primer lugar activar la capacidad de túnel en el servidor Xojo Cloud. Dirígete al panel de control y haz clic en la casilla de verificación “SSH Tunnel”. Obtendrás un nombre de usuario y contraseña que utilizarás posteriormente para establecer la conexión.

En macOS y Linux, puedes utilizar un comando del terminal para acceder al túnel (sustituye el nombre de usuario y la dirección IP como corresponda; se te preguntará por la contraseña).

Utiliza este comando para establecer una conexión tunelizada a PostgreSQL:

ssh -L 5432:localhost:5432 username@ipaddress -N

Utiliza este comando para establecer una conexión tunelizada con MySQL:

ssh -L 3306:localhost:3306 username@ipaddress -N

Si utilizas Windows tendrás que utilizar una app externa, como por ejemplo PuTTY. Existe una buena cantidad de tutoriales en internet, simplemente busca “putty ssh tunnel” en tu buscador favorito.

Con el túnel ya configurado puedes conectar a la base de datos como si fuese de forma local. Esto funciona con todo, no sólo con las apps Xojo.

SFTP

Xojo Cloud ofrece soporte de SFTP (Protocolo Seguro de Transferencia de Archivos) para la transferencia de archivos. SFTP es una variante de FTP, mediante la cual se realiza la transferencia de archivos en internet utiliza encriptación fuerte. De esa forma no tienes que preocuparte de que cualquiera intercepte tu nombre de usuario y contraseña o bien los archivos cuando estos se envían desde el servidor.

Cuando elijas un cliente, recuerda que SFTP es diferente de FTPS o FTP con SSL. No se pueden intercambiar.

Una vez que actives SFTP en el Panel de Control, se presentará un diálogo mostrando el nombre de usuario y contraseña generados.

Luego podrás conectarte mediante tu cliente de SFTP favorito. Si aún no tienes uno, existe una buena cantidad de opciones disponibles, tanto gratuitas como de pago:

  • ForkLift
  • Transmit
  • FileZilla
  • CyberDuck

Disponer de un lugar en el cual almacenar archivos en línea siempre resulta especialmente útil cuando se precisa compartir archivos con otras personas, sin la necesidad de tener que utilizar servicios de terceros para ello, como por ejemplo DropBox.

Servicios Web

Bien, un servicio web es técnicamente una app Xojo Web pero que en realidad es una API dirigida a ser utilizada por otras apps, por lo general aplicaciones desktop o bien para dispositivos móviles. Dado que los servicios web no ofrecen una interfaz de usuario incluso tampoco tienes por qué preocuparte sobre cómo usar la mayor parte del framework de Xojo

En vez de ello, sólo has de añadir básicamente código al evento App. HandleURL  para enrutar las llamadas a la API del servicio web a las tareas específicas y devolver los resultados para que puedan ser tratadas por la app cliente, por lo general en formato JSON.

Por ejemplo, un servicio web puede resultar un modo fantástico de consolidar el código a utilizar en apps de escritorio y para dispositivos móviles.

Por ejemplo, puedes crear un Servicio Web que se comunique con un servidor de bases de datos (como pueda ser cualquiera de las disponibles en Xojo Cloud). Tus apps de escritorio o para dispositivos móviles pueden emplear entonces el mismo servicio web para trabajar con la base de datos. Todo el código relacionado con la base de datos reside en el servicio web propiamente dicho, y las apps cliente realizan peticiones y muestran los resultados.

Este es un patrón de diseño muy común en la actualidad y necesario si quieres que una app para dispositivos móviles se comunique con un servidor de bases de datos.

Si quieres aprender más sobre servicios web, este es uno de los webinar que puedes reproducir:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *