Alliance Connect - Littlejohns

Llevamos haciendo el desarrollo, diseño, hosting y manteniendo de la web y de la aplicación de carga de propiedades de Littlejohns desde que se la montamos por allá a finales de 2010, ya casi 3 años. Como las posibilidades del sistema CARL de exportación / carga de viviendas y propiedades (que usa Littlejohns internamente para gestionar las miles de propiedades que tienen en sus registros) han evolucionado, se hizo evidente que había llegado la hora de incorporar dichos cambios en nuestro sistema.

CARL ha desarrollado el estándar AllianceConnect para ofrecer un formato consolidado de carga de viviendas, locales y propiedades en general de su sistema a webs de alquiler/venta de propiedades o directamente a webs de clientes. A pesar de que el sistema de AllianceConnect y los flujos que usa son un poco toscos, estos permiten que compañías cliente como Littlejohns racionalicen el proceso de sincronización con una o más webs al tiempo que sus listados de propiedades disponibles para alquiler cambian.

Además de hacer los cambios que software necesitaba para interactuar con AllianceConnect también tuvimos que incorporar la posibilidad de manejar propiedades de múltiples sub-compañías, empezamos a usar el formato más actualizado de exportación XML de CARL y actualizamos el SO del servidor a la última versión existente de CentOS.

Cuando Littlejohns ejecuta una exportación en su instancia local de sistema CARL los datos relacionados con las propiedades seleccionadas, los detalles de la compañía y algunos metadatos adicionales se exportan a los servidores centrales de AllianceConnect y a su vez se transfieren a su web. La carga se ejecuta vía FTP y cuando esta completa se lanza una petición HTTP GET (que incluye como parámetros el nombre de fichero cargado y su signatura MD5) a una URL predeterminada.

Sin entrar demasiado en los detalles de la implementación, decidimos instalar vsftp (securizado con listas autorizadas de IPs, un usuario restringido y una clave generada aleatoriamente) para la transferencia y a continuación construimos una capa software encima del código anterior diseñada para manejar el callback HTTP y para preparar los datos cargados de forma compatible con nuestro back end. Nos aseguramos de que esta nueva capa podía testearse automáticamente tanto como parte del flujo de procesos como de forma aislada ya que parte clave de la entrega de esta nueva funcionalidad era que podría probarse de forma precisa y rápida (sin tener que realizar ninguna carga FTP ni ciclo completo de carga vía AllianceConnect.

Fue un placer volver a trabajar con el equipo de Littlejohns y esperamos continuar haciéndolo en años venideros a la vez que realizamos el hosting y el soporte de estas aplicaciones.