Search

Home

Ogólna koncepcja systemu

Ogólna koncepcja systemu

Date
June 10, 2024

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:

  1. 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.
  2. 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.