Logo
    Pobierz gravity.integration

    Search

    Home

    Informacje podstawowe

    Dokumentacja techniczna

    Przykłady zastosowań

    gravity.integration
    gravity.integration
    /Dokumentacja techniczna
    Dokumentacja techniczna
    /Ogólna koncepcja systemu
    Ogólna koncepcja systemu
    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ą między 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 danych. Operatory 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 odpowiedniej opcji zależy od etapu wdrożenia: do konfiguracji zalecany jest GravityTriggersRunner.exe, a w środowisku produkcyjnym - usługa gravity.integration service.