At Zonifero, we specialise in providing our clients with solutions that improve daily office processes. Whether you need to find a fellow employee, check room availability or book a desk or some equipment, we got it covered.
With us, you can easily manage your workforce, office, and even the whole building. The family of Zonifero products significantly improves daily office processes and ensures conflict-free communication between the employees. All Zonifero products pull together to facilitate everyday office experience.
However, while developing our solutions, we have encountered many challenges and difficulties. Right at the beginning, we had to find a way to seamlessly connect Zonifero with the pre-existing systems in our clients’ offices and buildings.
How did we tackle that problem? Buckle up and let me tell you how, with the help of Microsoft Azure, we made it possible to provide our international clients with Zonifero services.
How to Connect Zonifero with External Systems?
As I mentioned, Zonifero must be able to communicate with systems implemented in buildings all around the world. Due to the physical location of the Zonifero infrastructure in the public Azure cloud, operating in the SaaS model, it’s impossible to install our solution in each of these premises. What makes it even more challenging is the necessity to connect the network infrastructure and provide appropriate interfaces for data exchange between the systems. Additionally, some of the integrations use dedicated tools (API) that require specific operating environments. Not to mention that the whole thing must meet appropriate, very demanding security standards.
Using Microsoft Azure to Address Zonifero’s challenges
To meet the challenge, we decided to use the following Microsoft Azure services:
- Virtual Network Gateway
- Local Network Gateway
- Function App
- App Service
- Virtual machine.
To secure flexibility of integration with external systems, we have designed a new data exchange layer in the form of network services. To unify the variety of interfaces, mechanisms, and processes used by these systems, our API provides us with a uniform interface in every case. We run our API as an application in App Service, whose logic is responsible for the implementation of dedicated integration, taking into account specific features and properties. From the perspective of the Zonifero application that uses the API, it does not matter what system it is — the interface is the same every time, differing only in the implementation.
However, that’s merely the beginning of our adventure. Our API is still in Microsoft Azure cloud resources and we can’t reach the system installed in the building. That’s a real head-scratcher!
To solve that problem, we decided to launch a Site2Site VPN tunnel between Azure cloud resources and an edge router connected to the Internet on one side, and the building’s local network on the other. Thanks to this, we can safely transfer data to and from the building.
Now it’s time to establish the connection. The most popular method of communication is the network interface (SOAP, REST) issued by the building system. In this case, our API, using the established connection between the local network in Azure and the local network in the building, can directly execute commands in the system.
However, some systems require a different approach. This mainly applies to older systems that use technologies that do not work well with network applications. In such cases, we launch an additional intermediate element between our API and the building system. We call it “a connector”.
Depending on the target API requirements, the connector (console application) runs on a Windows or Linux virtual machine. It uses the library of the building solution, necessary for implementing communication (SDK) with the system.
The last element is the readout of the status of building system components performed according to the schedule. For this purpose, an application (Function App) is launched, which performs the appropriate processes every fixed time interval and passes the result forward.
The Benefits of Applying Microsoft Azure at Zonifero
By introducing the above-mentioned solutions, we can implement further integrations with external systems without the need to introduce changes to the main one.
Locating all relevant Zonifero components in the Azure cloud supports the management and maintenance of the integration tools. Also, there is no need to interfere with the systems running in buildings, which are critical for infrastructure and security.
Thanks to the proposed methods, Zonifero can run smoothly and seamlessly, complementing the pre-existing systems and creating a coherent whole.