But what is the purpose of an interop? What was the point of doing this refactoring work?

Let's discover the answers to these questions together throughout this article.

Interop, or how two systems communicate with each other

The software building blocks that are part of Instant Booking are called interops (for "interoperability").

The role of an interop is twofold: it bridges the gap between Instant Booking and third party software in real time, and it also adds functionality to Instant Booking.

Instant Suite has two main types of interops:

  • Interops that receive data from the sensors associated with the resources. These data are used to automatically update the occupancy status of these resources in Instant Booking
  • Calendar interops that allow Instant Booking to interact with Microsoft Outlook and Google Calendar email systems. It is this second case that will interest us for the rest of this article.
     

    80% of Instant Booking bookings use calendar interops

    Exchange and Google Apps calendar interops allow Instant Booking to connect to Microsoft Outlook or Gmail email service accounts and synchronise resource bookings to their respective calendars.

    Diagram of how the interops workNB: route 1 does not prevent route 2, and vice versa.

     
    Synchronisation is bi-directional and in real time; this means that bookings made in Instant Booking are immediately transmitted to Outlook or Google Calendar and vice versa. In addition to synchronising bookings between Instant Suite and Outlook, the Exchange interop can also display in Outlook the office presence declarations that users enter in Instant Booking (either on the web portal or on Instant Mobile). These two interops are particularly important for our customers. Indeed, 80% of the bookings processed by Instant Suite depend on one of these two interops and involve almost 10,000 resources!

    A necessary renovation project

    Such a large volume of bookings requires a sound technical foundation, as even the slightest error in the solution's code could disrupt users' activities. We therefore need a healthy, coherent and easily maintainable code base in the long term: this is the whole point of refactoring.

    Indeed, refactoring consists in modifying the source code of solutions and restructuring it so that it is:

    • Shorter,
    • More readable,
    • Faster to run,
    • More reliable,
    • Easier to maintain.

    Furthermore, this code optimisation prepares the ground for future developments. This makes it easier and faster to develop and deliver new features without disrupting existing ones.

    More efficient and less resource-intensive interops

    Unit tests to verify the source code

    When we launched the interops, we wanted to deliver many features at a fast pace. To achieve this, the code for these features had to be tested manually, block by block. In a small number of cases, this could lead to synchronisation problems.

    Subsequently, we generalised the implementation of unit tests: this is code whose purpose is to verify the operation of another piece of code, automatically, without manual intervention by a developer.

    In an architecture where all tests are automated, it is possible to have a large number of software components validated in a minimum of time and to precisely identify which parts of the application are not working if the test reveals an error.

    Unit testing is a first step in quality assurance.

    Once these tests are validated, we can prepare a full version of the application and test it under near-real conditions. This is known as functional testing.

    Automated functional tests to prevent booking bugs

    In addition to these improvements, refactoring has enabled us to set up two extremely effective testing tools:

    • A script that analyses synchronisation: it checks that every booking created in Instant Booking appears on the right date in Google Calendar or Outlook. It also checks that the guest names are correct and that the resources are the right ones.
    • A robot that tests the limits of the interops: it simulates intense activity by a large number of users. This serves to check a wide variety of use cases, but also to verify that everything is working, even when the interop is heavily used. This tool is particularly important for preventing errors from occurring when thousands of bookings are created.
    Preparing interops for intensive use

    In addition to the above testing tools, we have made the interop more scalable, i.e. it is now able to adapt the amount of hardware resources used according to usage.

    Thus, if there is little demand on the interop at any given time, it will use little computing power, RAM or storage. Conversely, as the load increases, the system will release more resources. This simplifies system operation and maintenance, as well as providing environmental savings.

    Towards ever more functionality

    Thanks to the hard work of the SharingCloud team over the past two years, the optimisation of Exchange and Google Apps interops makes it easier to integrate more functionality.

    For the Interop Exchange
    • Synchronisation of the Office Presence module

    For example, the refactoring of the Exchange interop has made it possible to synchronise presence statuses made from Instant Booking with Outlook. Presence statuses allow users to declare which days of the week they are in the office, telecommuting, travelling, or on holiday.

    Presence status of employee Ben from 14 to 20 March on Instant Booking
    Synchronisation of Ben's Presence Status from 14 to 20 March 2022 on the Outlook calendar

    Without the optimisation of the interop code, this major upgrade could not have been deployed smoothly.

    • Teams synchronisation

    It is now possible to create a video conference at the same time as booking a resource.

    For the Google interop

    The more recent refactoring of the Google interop offers good prospects for development. Although new features have not yet been developed, this work has served to improve the existing system and propose an optimal synchronisation mechanism.

    Synchronisation of a resource and an appointment for employee Ben on 11 April on the Google Calendar

    In the future, we will be able to consider:

    • Synchronisation with Google Calendar of office presence statuses declared in Instant Booking or Instant Mobile
    • Google Meet meeting creation from the Instant Booking interface
    • And much more…

    In conclusion

    Interops are used to exchange data with several commonly used applications. They are therefore essential to ensure the continuity of the user experience. Thanks to the refactoring work of the calendar interops, Instant Booking strengthens its ties with the Microsoft and Google ecosystems. The portal is more efficient, more reliable and more user-friendly.