Usprawnianie codziennych procesów w biurach i dostarczanie klientom nowoczesnych narzędzi to podstawa funkcjonowania Zonifero. Niezależnie od tego, czy potrzebujesz znaleźć współpracowników, zarezerwować pokój konferencyjny, biurko w systemie hot-desk lub niezbędny sprzęt — nasze rozwiązanie wspiera pracowników biurowych w każdym z tych zadań.
Z Zonifero możesz lepiej zarządzać swoimi pracownikami, biurem, jak też całym budynkiem. Rodzina produktów Zonifero znacząco usprawnia te obszary, wspierając komunikację między pracownikami i usprawniając pracę biura.
Rozwój tego typu systemów wiąże się jednak z określonymi wyzwaniami. Jednym z nich jest możliwość połączenia systemu Zonifero z rozwiązaniami już zainstalowanymi w budynkach i biurach naszych klientów.
Jak sobie z tym poradziliśmy? Jednym z narzędzi, które pomogło nam zrealizować nasze założenia, jest Microsoft Azure.
Problem: połączenie Zonifero z systemami klientów
Żeby dalej rozwijać Zonifero, nasz system musi być w stanie łączyć się z rozwiązaniami, które wdrażane są w biurach na całym świecie. Sama infrastruktura Zonifero znajduje się na publicznej chmurze Azure, działając w modelu SaaS — dzięki temu możemy zainstalować nasze rozwiązanie praktycznie w każdej lokalizacji.
Wyzwaniem jest jednak połączenie naszego systemu do infrastruktury klientów i umożliwienie wymiany danych między nimi w obrębie jednego interfejsu. Niektóre z integracji korzystają dodatkowo z dedykowanych narzędzi (API), wymagających specyficznych środowisk funkcjonowania. Taki system musi spełniać również bardzo wysokie standardy bezpieczeństwa.
Usługi Microsoft Azure, które pomogły nam sprostać tym wyzwaniom
Jak wspomniałem we wstępie, w zaadresowaniu wyzwań, z którymi mierzyliśmy się w Zonifero, pomogło nam wykorzystanie następujących usług Microsoft Azure:
- Virtual Network Gateway
- Local Network Gateway
- Function App
- App Service
- Virtual Machine
Elastyczność integracji z systemami zewnętrznymi zapewniliśmy poprzez zaprojektowanie nowej warstwy wymiany danych w postaci usług sieciowych. Ze względu na różnorodność interfejsów, mechanizmów i procesów, którymi posługują się te systemy, nasze API zapewnia nam jednolity interfejs w każdym przypadku. Uruchamiamy je jako aplikację w usłudze App Service i to logika w niej zawarta odpowiada za realizację dedykowanej integracji z uwzględnieniem specyficznych cech i właściwości. Z perspektywy aplikacji Zonifero, która wykorzystuje API, nie ma znaczenia, z systemem jakiej firmy się łączy — interfejs jest za każdym razem taki sam, a jedyna różnica polega na implementacji systemu.
Jest to jednak dopiero początek drogi. Nasze API nadal znajduje się w zasobach chmury Microsoft Azure i do systemu zainstalowanego na fizycznej maszynie w budynku wciąż jest kawałek drogi do przebycia. Zdecydowaliśmy się na uruchomienie tunelu VPN typu Site2Site pomiędzy zasobami w chmurze Azure a routerem brzegowym podpiętym do sieci Internet z jednej strony i do sieci lokalnej budynku z drugiej. Dzięki temu możemy bezpiecznie przesyłać dane do i z budynku.
Po ustanowieniu bezpiecznego połączenia między Zonifero w Azure a systemem w budynku (np. System Kontroli Dostępu), możemy przystąpić do nawiązywania połączenia. Najpopularniejszą metodą komunikacji (ale nie jedyną) jest wystawiany przez system budynkowy interfejs sieciowy (SOAP, REST). W takim przypadku nasze API, wykorzystując zestawione połączenie między siecią lokalną w Azure a siecią lokalną w budynku, może bezpośrednio wywoływać polecenia w systemie.
Są jednak także sytuacje, gdy system wymaga innego podejścia. Jest to cecha przede wszystkim starszych systemów, które wykorzystują technologie źle współpracujące z aplikacjami sieciowymi. W takiej sytuacji decydujemy się na uruchomienie dodatkowego elementu pośredniczącego między naszym API a systemem wykorzystanym w budynku.
Aplikacja konsolowa (nazywana przez nas konektorem) uruchamiana jest na maszynie wirtualnej z systemem Windows lub Linux, w zależności od wymagań API docelowego. Aplikacja wykorzystuje bibliotekę — dostarczaną przez producenta rozwiązania budynkowego — niezbędną do realizacji komunikacji (SDK) z systemem.
Ostatnim elementem jest wykonywane z określoną wg harmonogramu częstotliwością odczytywanie statusu komponentów systemu budynkowego (np. informacje zbierane przez czytniki kontroli dostępu). W tym celu uruchomiona jest aplikacja (Function App), która wykonuje odpowiednie procesy co zadany interwał czasu, przekazując wynik dalej.
Co daje nam wykorzystanie Microsoft Azure?
Dzięki wprowadzeniu powyższych rozwiązań jesteśmy w stanie implementować kolejne integracje z systemami zewnętrznymi bez potrzeby wprowadzania zmian po stronie głównego systemu.
Umieszczenie wszystkich istotnych komponentów Zonifero w chmurze Azure ułatwia zarządzanie i wspiera kwestie utrzymaniowe narzędzi do integracji. Poza tym, nie występuje konieczność instalacji i ingerencji w systemy uruchomione w budynkach klientów, które stanowią krytyczny element infrastruktury i bezpieczeństwa.
Karol Parafianowicz
Chief Technology Officer / CTO
Zonifero (TenderHut Group)