Alliance Connect - Littljohns

We have been developing, designing, hosting and supporting the Littlejohns' website and property upload application, that we built for them back at the end of 2010, for nearly three years now. As the property export / upload capabilities of the CARL system (that Littlejohns use internally to manage the thousands of properties that they have on their books) evolved, it became evident that the time had come to incorporate these changes into our existing system.

In order to provide a consolidated format for uploading properties from it's system to third party property letting websites or a customer's own site, CARL have developed the AllianceConnect standard. While the AllianceConnect system and the workflows that it use are a little bit clunky they do allow client companies like Littlejohns to streamline the process of synchronising with one or more websites as their lists of properties that are available for let change.

In addition to making the changes that our software required to work with AllianceConnect we also incorporated the ability to handle properties from multiple sub-companies, started using the latest CARL XML export format and upgraded the server OS to the latest version of CentOS.

When Littlejohns run an export on their local instance of the CARL system the data relating to the properties that have been selected, the company details and some additional metadata is exported to the central AllianceConnect servers and then subsequently transferred to the website. The actual upload is performed via FTP and when this is completed a HTTP GET request (which includes the uploaded filename and it's MD5 signature as parameters) is made to a predetermined the URL.

Without going overly into the details for the implementation of this project we choose to install vsftp (secured via IP whitelisting, a restricted user and a complex randomly generated password) for the data transfer and then we built an additional software layer on top of the previous code base which was designed to handle the HTTP callback and then prepare the uploaded data so that it was compatible with our existing back end. We made sure that this new layer could be automatically tested both as part of the overall process flow and also in isolation as a key part of the delivery of this new functionality was the ability to test code changes accurately and quickly (without having to perform any FTP uploads or a full "round trip" upload through Alliance connect).

It was good to be able to work with the Littlejohns team again and we will hopefully continue to do so as we host and support these applications over the coming years.