GRAVITY to elastyczna platforma integracyjna zaprojektowana z myślą o przetwarzaniu i wymianie danych między systemami. Umożliwia budowę zaawansowanych procesów ETL/ESB w modelu low-code/no-code, bazując na wizualnym projektowaniu przepływu danych i reguł biznesowych. Dzięki jasnemu podziałowi na projekty i wyzwalacze, a także modularnej budowie, system zapewnia wysoką elastyczność i łatwość utrzymania nawet bardzo rozbudowanych przepływów. To narzędzie, które z powodzeniem znajduje zastosowanie w integracji systemów ERP, e-commerce, CRM, baz danych, webserwisów i dowolnych innych źródeł informacji.
System oparty jest na dwóch kluczowych warstwach logicznych:
- Projekty (GRAVITY.INTEGRATION) – zawierające logikę przetwarzania danych w postaci grafu operatorów,
- Wyzwalacze (Triggers) – definiujące sposób i moment uruchomienia projektu.
Całość pracuje w architekturze event-driven, pozwalającej na uruchamianie procesów na żądanie, cyklicznie lub w reakcji na zewnętrzne zdarzenia systemowe.
Projekty – procesy danych
W GRAVITY projekt to samodzielna jednostka logiki przetwarzania danych, zbudowana z połączonych ze sobą operatorów. Każdy operator wykonuje określoną operację (np. wczytanie pliku, walidację danych, mapowanie, eksport do bazy). Dane przemieszczają się między operatorami za pomocą tzw. magistrali danych – wewnętrznej struktury pozwalającej na przekazywanie rekordów i pól pomiędzy komponentami.
Każdy projekt to graf składający się z następujących typów operatorów:
- Operatory wejściowe – inicjują przepływ danych, pobierając je z plików, baz danych, API, FTP, kolejki wiadomości, itp. Każdy z nich rozpoczyna oddzielny strumień przetwarzania.
- Operatory przetwarzające – są odpowiedzialne za przetwarzanie danych będących na magistrali danych. Wykonują miedzy innymi działania: modyfikują, łączą, filtrują lub klasyfikują dane, rozpoznają strukturę EDI, konwertują formaty, czyszczą dane, rozgałęziają logikę itp.
- Operatory wyjściowe – finalizują każdą ścieżkę, zapisując dane do systemów docelowych: baz SQL, plików, webserwisów, kolejek lub jako odpowiedź sieciową.
Każda ścieżka w projekcie musi rozpocząć się operatorem wejściowym i zakończyć operatorem wyjściowym, aby mogła zostać poprawnie wykonana.
GRAVITY umożliwia dowolne łączenie operatorów – zarówno sekwencyjnie, jak i równolegle – co pozwala projektować złożone przepływy danych w formie czytelnych, graficznych struktur.
Dzięki magistrali dane są przekazywane w postaci rekordów zawierających wiele bitów danych o ściśle sprecyzowanych typach. Operatorzy mogą dynamicznie poszerzać, filtrować lub modyfikować zawartość magistrali.
Wyzwalacze – uruchamianie projektów
Aby projekt mógł zostać uruchomiony automatycznie, należy przypisać do niego wyzwalacz (trigger). Trigger to komponent systemu, który nasłuchuje określonego zdarzenia lub warunku, a gdy zostanie spełniony – aktywuje odpowiedni projekt przekazując do niego otrzymane parametry wywołania.
GRAVITY obsługuje wiele typów triggerów, m.in.:
- czasowe (cykliczne, np. co 5 minut),
- plikowe (monitorowanie folderów lokalnych lub sieciowych),
- sieciowe (wywołania REST API, AS2, TCP Socket),
- kolejki komunikatów (RabbitMQ),
- notyfikacje baz danych (postgresql, SQL Server, Oracle)
- niestandardowe (obsługa zdarzeń systemowych lub zewnętrznych sygnałów aplikacji).
Dzięki temu GRAVITY może działać zarówno jako integrator w czasie rzeczywistym, jak i jako mechanizm wsadowy lub hybrydowy.
Architektura oprogramowania
GRAVITY składa się z dwóch głównych komponentów aplikacyjnych:
- Gravity.exe – aplikacja konfiguracyjna, służąca do:
- projektowania i edycji logiki przetwarzania danych (projektów),
- zarządzania triggerami i przypisaniami do projektów,
- definiowania źródeł danych i parametrów systemowych,
- konfiguracji autoryzacji i punktów dostępowych API.
- GravityTriggersRunner.exe oraz usługa systemowa
gravity.integration service
pełniące funkcję serwera systemu GRAVITY odpowiedzialne za: - utrzymanie i obsługa serwera usług systemu GRAVITY
- nasłuch zdarzeń wysyłanych z baz danych oraz brokerów wiadomości
- wykonanie logiki zdefiniowanej w projektach na podstawie aktywowanych triggerów,
- umożliwiają logowanie przebiegu procesów, śledzenie błędów i stanów wykonania,
Wybór między EXE a usługą zależy od środowiska – GravityTriggersRunner.exe zalecany jest w fazie konfiguracyjnej, natomiast usługa w środowisku produkcyjnym.