Integracja systemów informatycznych jest niezbędnym elementem, by osiągnąć automatyczną wymianę danych między równymi systemami, a nie rzadko i różnymi firmami. Potrzeba automatyzacji przepływu danych dotyczy zarówno małych firm jak i olbrzymich korporacji. Zazwyczaj integracja ma na celu zmniejszenie ilości ręcznie wykonywanej pracy, ale często również pozwala na śledzenie nowych metryk niedostępne wcześniej w organizacji.
Najczęściej z wykorzystaniem różnych interfejsów REST API, SOAP, GraphQL, kolejek MQTT oraz plików XML i CSV.
Korzyści płynące z integracji
- Mniejsza ilość pracy ręcznej to większa produktywność i kreatywność zespołu.
- Zwiększenie wiarygodności danych poprzez wyeliminowanie pomyłek przy wprowadzaniu danych.
- Zwiększenie bezpieczeństwa przez wyeliminowanie potrzeby ręcznego importu danych.
- Przyspieszenie raportowania lub wręcz umożliwienie mierzenia nowych metryk zwiększa konkurencyjność organizacji.
- Automatyczny przepływ danych może poprawić komunikację i transparentność między działami/firmami zmniejszając ilość nieporozumień.
Czym jest integracja systemów informatycznych?
Mówiąc ogólnie, integracja systemów informatycznych to proces umożliwiający wymianę danych miedzy różnymi systemami IT. Pozwala im to na funkcjonalną współpracę, poprawiając komunikację pomiędzy poszczególnymi oddziałami czy procesami firmy. Integracja systemów IT umożliwia różnym systemom na korzystanie nawzajem ze swoich zasobów takich jak pliki, dane czy informacje.
Duża część przedsiębiorców bywa zaskoczona, jak czasochłonny i skomplikowany bywa proces integracji systemów IT. Powód jest prosty - niektóre systemy operują danymi w bardzo odmienny sposób i nie zawsze łatwe jest przetłumaczenie informacji z języka jednej aplikacji na język innej. Oczywiście wszystko zależy od tego, jakie oprogramowania posiada dana firma i jaki jest planowany zakres wymiany danych. Czasem może się okazać, że integracja z niektórymi systemami będą wymagać niewiele pracy, ale bywa także, że trudność może stanowić już samo wydobycie danych z jednego systemu (a zdarza się, że i z obu). Nierzadko przy integracji systemów informatycznych programiści muszą poświęcić sporo czasu na zrozumienie, w jaki sposób dane są zorganizowane i jakie jest ich znaczenie dla użytkowników systemów.
Bardzo często interesujące nas dane pochodzą i są przetwarzane przez wiele niezależnych systemów. W takim wypadku integracja każdego systemu z osobna może prowadzić do bardzo dużej ilości pojedynczych integracji i częstej duplikacji kodu (np. w różnych miejscach łącznym się z tym samym API). W takich sytuacjach warto rozważyć zbudowanie szyny integracyjnej, w której to zostanie zaimplementowana cała logika przepływu danych między systemami i każdy z systemów zostanie połączony wyłącznie z tą szyną danych.
Co rozważyć przed rozpoczęciem integracji?
W swojej praktyce spotkaliśmy się z wieloma różnymi sytuacjami i do każdego projektu podchodzimy indywidualnie. W integracjach jest kilka kluczowych zagadnień, które należy dokładnie omówić z klientem przed przystąpieniem do prac. Oto lista najważniejszych z nich:
Czy tylko dwa, czy też może więcej? Nawet jeśli teraz rozważamy tylko dwa, to czy w przyszłości nie będzie potrzeby dodania kolejnych?
Czy wszystkie są pod kontrolą firmy, czy też niektóre są u klientów/dostawców lub w innych instytucjach?
Jeśli automatyczna, to czy konieczne jest działanie w czasie rzeczywistym, czy też można lub trzeba realizować ją w większych interwałach czasowych? A może wymiana danych ma być uruchamiana w efekcie jakiejś akcji jednego z systemów lub ludzkiego operatora?
Czy tylko z systemu A do systemu B, czy też w obu kierunkach?
Czy może się okazać, że dane w jednym systemie są sprzeczne z danymi w drugim systemie? Jeśli tak, to który z systemów ma rolę nadrzędną? A może konflikty należy pozostawić do rozwiązania człowiekowi?
Czy jest jakieś API, a może konieczne będzie łączenie się bezpośrednio do bazy danych lub zaimplementować jakąś formę wymiany plików? Czy API (jeśli jest) jest udokumentowane, a dokumentacja jest aktualna, czy też trzeba będzie je "rozpracowywać"?
Warto ustalić po jakim standardzie rozmawia dane urządzenie i czy mamy kontakt do producenta/dystrybutora w celu uzyskania specyfikacji. W firmie ImpiCode wielokrotnie łączyliśmy się z urządzeniami, zarówno po porcie szeregowym, jak i przy pomocy przemysłowych protokołów komunikacyjnych (np. EtherNet/IP, EtherCAT, Modbus) by uzyskać niezbędne dane potrzebne dla systemów IT.
To tylko kilka najważniejszych kwestii, które pomogą określić pracochłonność projektu integracyjnego.
Najlepsze interfejsy komunikacji z systemami
Jest najpopularniejszą metodą komunikacji z systemami. Zazwyczaj nie sprawia większych problemów z integracją. Czasami występują problemy ze słabo udokumentowanymi niestandardowymi metodami autoryzacji.
Zyskujący na popularności standard, pozwala odpytywać serwer o dane (tylko odczyt). Ogranicza ilość zapytań o dane do serwera, gdyż to klient definiuje, jakie warunki mają spełniać pobrane dane oraz jakie informacje/pola mają zawierać.
W tym standardzie obie strony inicjalizują stałe połączenie i przesyłają między sobą komunikaty. W przeciwieństwie do pozostałych architektur komunikacja w tym standardzie posiada stan, a te same wiadomości mogą zwracać różny rezultat w zależności od poprzednich komunikatów.
MQTT to lekki protokół komunikacyjny opierający się na wzorcu Publisher-Subscriber. Integracje z MQTT są często spotykane w zastosowaniach IoT, gdzie kluczowa jest efektywna i niezawodna wymiana danych między rozproszonymi urządzeniami.
Integracja systemów poprzez SQL polega na udzieleniu dostępu do bazy danych systemu. Rozwiązanie to niesie wiele zagrożeń bezpieczeństwa oraz duże ryzyko dezaktualizacji integracji po aktualizacji systemu.
Unowocześniona wersja JSON-RPC. Może posłużyć do łączenia różnych mikroserwisów (napisanych nawet w różnych językach programowania) przez wywoływanie funkcji w innym serwisie, i otrzymywania rezultatu wykonanego kodu.
Kiedy integracja systemów IT jest możliwa?
Jeśli systemy udostępniają API lub inny mechanizm umożliwiający uzyskanie ustrukturyzowanych danych wtedy mamy pewność, że integracja jest możliwa.
Kłopoty zaczynają się wówczas, gdy któryś z systemów nie tylko nie udostępnia API, lecz również (mniej lub bardziej celowo) utrudnia inne formy wymiany danych. Niemniej jednak również w takich przypadkach wymiana danych zazwyczaj jest możliwa (np. bot symulujące użytkownika systemu), jednak znaczącą wzrasta ryzyko zawodności takiego rozwiązania i konieczności częstego supportowania (częściej zachodzą zmiany na UI/UX niż w API).
Większość dużych dostawców oprogramowania udostępnia API do swoich systemów, nie zawsze jednak dają oni możliwość integracji wszystkim swoim klientom, często w takim wypadku warto zwrócić się do partnerów technologicznych takich firm, którzy chętniej udostępniają API.
W przypadku systemów mniejszych dostawców warto skontaktować się z daną firmą i poprosić ich o wystawienie/zaimplementowanie danego API (czasami odpłatnie). Jeśli to nie pomoże może spróbować namówić dostawcę o wystawienie odpowiednio ograniczonego dostępu do bazy danych. W razie potrzeby możemy reprezentować Twoją firmę podczas takiej rozmowy.
Systemy z którymi można zintegrować
Poniżej przedstawiamy najpopularniejsze na polskim rynku oprogramowania, dla których możemy zaimplementować integracje. Jeśli nie widzisz loga, które Cię interesuje, nic nie szkodzi, nie ma tu wszystkich systemów, z którymi się łączyliśmy, ponadto w znacznej większości przypadków bez większych problemów łączymy się z nieznanymi nam do tej pory systemami. Jeśli masz do zintegrowania jakieś rozwiązanie, napisz do nas, powiemy Ci czy jest możliwe i ile będzie kosztowało.
Oprogramowania klasy ERP
Oprogramowania klasy CRM
Oprogramowanie do współpracy i komunikacji
Na czym polega integracja systemów informatycznych?
Proces integracji systemów informatycznych bywa zadaniem dość prostym, ale w zależności od złożoności procesu i organizacji może też być dużym przedsięwzięciem. W najprostszym przypadku wymaga tylko zaimplementowania integracji z poziomu jednego z systemów (np. utworzenia funkcji wysyłającej zapytanie do API drugiego systemu i zapisanie tych danych w danym systemie).
W przypadku złożonych procesów lub gdy interesujące nas dane przechodzą przez wiele niezależnych systemów, może zajść potrzeba wielu niezależnych integracji między systemami. Np. gdy pracownik BOK przyjmuje zgłoszenie o zmianie adresu firmy, informacja o tym powinna trafić do wielu systemów (np. księgowego, CRMu, spedycyjnego). Klient tej firmy może również poinformować o zmianie adresu handlowca firmy, który pracuje wyłącznie w swoim CRM, zaś zmiana adresu musi nastąpić w każdym z systemów. W takim wypadku zmiana adresu, w którym kol wiek z systemów powinna uruchamiać procedurę rozsyłającą nowy adres do każdego z systemów.
