Program magazynowy WMS.net

Platforma StudioSystem GT - nowa generacja systemów magazynowych

Platforma StudioSystem GT: .NET 10, PostgreSQL 18, konfiguracja w Git wczytywana na gorąco i ten sam obraz w chmurze oraz u klienta. Opis i granice dojrzałości.

Opublikowano · Aktualizacja
www.programmagazyn.pl/systemy/
Duże ekrany z danymi zawieszone między regałami magazynowymi
Duże ekrany z danymi zawieszone między regałami magazynowymi
W skrócie

Platforma StudioSystem GT: .NET 10, PostgreSQL 18, konfiguracja w Git wczytywana na gorąco i ten sam obraz w chmurze oraz u klienta. Opis i granice dojrzałości.

Oznaczenie GT nosi trzecia generacja platformy StudioSystem, na której SoftwareStudio buduje systemy magazynowe. Zmienia ona jednocześnie runtime i bazę danych: .NET 10 i PostgreSQL 18. Konfiguracja leży w plikach w Git, a serwer pracuje na Linuksie w kontenerach. Ta strona opisuje, jak platforma jest zbudowana, i wskazuje, czego jeszcze nie potrafi.

Funkcje opisane na pozostałych stronach tej witryny dotyczą obecnie Studio WMS.net na platformach ST i RS. Platforma GT jest kierunkiem rozwoju i ma własny zakres, który omawia sekcja o dojrzałości.

Z czego składa się platforma GT

Jeden proces z bazą danych i dwoma mikroserwisami obok.

Rdzeń napisano w .NET 10 na ASP.NET Core i zbudowano jako modular monolith: moduły działają w jednym procesie na instancję. Wywołanie między modułami nie opuszcza więc procesu i nie wymaga kolejki ani sieci. Dane trzyma PostgreSQL 18, a interfejs powstaje w Vue 3 z TypeScriptem i Vite, na własnym zestawie komponentów @gt-ui.

Dwie funkcje wyniesiono poza rdzeń. Mikroserwis wydruków zamienia szablony HTML na PDF przy użyciu Scriban i Chromium. Mikroserwis powiadomień wysyła pocztę i SMS-y z kolejki w PostgreSQL, opartej na mechanizmie LISTEN/NOTIFY, a pocztę obsługuje biblioteka MailKit. Dostęp do bazy transakcyjnej ma wyłącznie rdzeń, więc mikroserwisy nie czytają tabel magazynowych bezpośrednio.

Architektura platformy StudioSystem GT Schemat: przeglądarka wysyła żądania przez reverse proxy Traefik do rdzenia GT, czyli jednego procesu .NET 10 w układzie modular monolith. Rdzeń wczytuje na gorąco konfigurację z repozytorium Git, korzysta z bazy PostgreSQL 18 i wywołuje dwa mikroserwisy: wydruków oraz powiadomień. Dostęp do bazy transakcyjnej ma wyłącznie rdzeń. Pod schematem pasek OpenTelemetry obejmuje ślad od przeglądarki po mikroserwisy. Przeglądarka Vue 3, TypeScript, @gt-ui HTTPS Reverse proxy Traefik Repozytorium Git YAML, HTML, JS, CSS żądania wczytanie na gorąco Rdzeń GT - jeden proces na instancję .NET 10, ASP.NET Core, modular monolith Silnik RunSteps (kroki w YAML) i wersjonowane zapytania codeSQL Walidacja fail-closed: konfiguracja po błędzie walidacji nie wchodzi do użycia Jedyny dostęp do bazy transakcyjnej PostgreSQL 18 baza transakcyjna 44 migracje schematu Mikroserwis wydruków HTML do PDF Scriban i Chromium Mikroserwis powiadomień poczta i SMS, MailKit kolejka LISTEN/NOTIFY OpenTelemetry: ślad żądania od przeglądarki po mikroserwisy
Architektura platformy GT. Ruch idzie od przeglądarki przez Traefik do rdzenia, a rdzeń jako jedyny sięga do bazy transakcyjnej i wywołuje oba mikroserwisy.

Wyniesienie wydruków do osobnej usługi ma praktyczny skutek: Chromium renderujący PDF nie dzieli procesu z rdzeniem transakcyjnym. Zestawienie warstw pokazuje tabela.

Warstwy platformy GT i użyta technologia
WarstwaTechnologiaRola w systemie
Backend.NET 10, ASP.NET Core, modular monolithJeden proces na instancję; jedyny dostęp do bazy transakcyjnej
Baza danychPostgreSQL 18Brak kosztu licencji na instancję
InterfejsVue 3, TypeScript, Vite, @gt-uiWłasny zestaw 38 komponentów, bez licencji komercyjnych
WydrukiScriban, ChromiumMikroserwis zamieniający HTML na PDF
PowiadomieniaMailKit, PostgreSQL LISTEN/NOTIFYMikroserwis poczty i SMS z kolejką w bazie
ObserwowalnośćOpenTelemetryŚlad od przeglądarki po mikroserwisy
HostingDocker, Traefik, GitOpsInstancja i baza na klienta; sekrety w SOPS i age

Konfiguracja w Git, wczytywana na gorąco

Konfiguracja jako zwykłe pliki, które da się przejrzeć i cofnąć.

W starszych generacjach konfiguracja siedzi w kodzie stron albo w bazie danych. W GT stanowią ją pliki tekstowe w repozytorium Git (YAML, HTML, JS, CSS). Każda zmiana ma autora i datę, da się ją przejrzeć w różnicy przed wdrożeniem i cofnąć jak zwykły commit.

Platforma wczytuje pliki konfiguracji na gorąco. Dwa mechanizmy decydują o bezpieczeństwie takiej operacji:

  • Wczytanie na gorąco - podmiana pliku u klienta odbywa się bez restartu i bez okna serwisowego.
  • Walidacja fail-closed - plik, który jej nie przejdzie, nie wchodzi do użycia.

W pierwszej generacji nowa funkcja u klienta oznacza wgranie transakcji JS albo nowej wersji, w drugiej zwykle nową wersję aplikacji. Zestawienie wszystkich różnic zawiera porównanie trzech generacji StudioSystem.

Silnik RunSteps i zapytania codeSQL

Logika serwerowa jako kroki w YAML i zapytania w osobnych plikach.

Logika serwerowa nie siedzi w kodzie stron. Opisują ją dwa elementy:

  • Kroki w YAML - silnik RunSteps wykonuje je po stronie serwera.
  • Zapytania codeSQL - wersjonowane zapytania do bazy, używane przez silnik RunSteps.

Pakiet wspólny i systemowy zawiera 130 transakcji i 219 zapytań codeSQL. Zapytanie zapisane jako wersjonowany plik trafia do tego samego repozytorium co reszta konfiguracji i podlega tej samej historii zmian.

W drugiej generacji tę rolę pełni graf kroków (step processing) zapisany w JSON, a w pierwszej kod w stronach i procedurach. Dla zespołu, który utrzymuje system, różnica polega na tym, że w GT zmianę logiki widać jako zwykły diff pliku tekstowego.

Interfejs i wielojęzyczność

Własny zestaw komponentów i tłumaczenia w jednym pliku.

Zestaw @gt-ui liczy 38 komponentów i zastępuje komercyjne biblioteki interfejsu, które stały za drugą generacją (DevExpress i 78 zależności frontendu). Cały frontend GT ma 10 zależności produkcyjnych.

Pracownik magazynu z tabletem i holograficznym interfejsem danych
Grafika poglądowa: interfejs aplikacji magazynowej na tablecie. Warstwę interfejsu GT buduje się w Vue 3 i TypeScript.

Wielojęzyczność jest wbudowana: tłumaczenia leżą w pliku obsługiwanym przez i18next. Kolejny język portalu to plik tłumaczeń i szablony, szacunkowo 8-10 godzin pracy. Ten sam zakres na pierwszej generacji kosztuje 80-100 godzin, bo wymaga skopiowania stron .aspx i wyciągnięcia komunikatów z kodu.

Własne biblioteki GT korzystają wyłącznie z licencji otwartych (MIT, Apache 2.0, PostgreSQL License). Dla klienta, który chce uniknąć komponentów komercyjnych, to jeden z powodów, by rozważyć tę platformę. Pakiet WMS na GT opisuje osobna strona o Studio WMS na platformie GT.

Wdrożenie w kontenerach i GitOps

Docker-first, ten sam obraz w chmurze i u klienta.

GT projektowano z myślą o kontenerach. Każdy klient ma własną instancję i własną bazę. Ruch przyjmuje reverse proxy Traefik, a wdrożenia przechodzą przez GitOps, z sekretami zarządzanymi przez SOPS i age. Tam, gdzie dane kilku klientów trafiają do jednej bazy, izolację zapewnia row-level security w PostgreSQL.

Ten sam obraz kontenera działa w chmurze SoftwareStudio i na serwerze klienta, więc nie istnieją osobne wydania chmurowe i lokalne. Serwer klienta musi być maszyną z Linuksem z dostępem do kontenerów, a hosting współdzielony PHP nie wystarcza. Dla porównania Studio WMS.net w wersji ST i RS pracuje na Windows Server, a opcję chmurową opisuje strona o WMS w chmurze.

Obserwowalność zapewnia OpenTelemetry. Ślad żądania zaczyna się w przeglądarce i biegnie przez rdzeń do mikroserwisów, więc wolne wywołanie da się przypisać do konkretnej warstwy. Silnik bazy opisują oficjalne notatki wydania PostgreSQL 18, a runtime opisuje przegląd nowości w .NET 10.

Dane z noty technologicznej

Liczby z pomiaru na realnym wolumenie danych.

Poniższe wartości pochodzą z noty technologicznej platformy GT z 19.08.2026. Test wykonano na realnym wolumenie danych, który podaje pierwszy wiersz tabeli.

Wybrane dane z noty technologicznej platformy GT (19.08.2026)
ParametrWartośćUwagi
Wolumen testowyok. 10 tys. kartotek; 45 tys. dokumentów; ponad 150 tys. pozycjiDane, na których wykonano pomiary
Migracje schematu bazy44Z rejestrem historii zmian
Zależności produkcyjne rdzenia backendu15Frontend ma 10 zależności produkcyjnych
Grid dokumentówok. 1,5 s do ok. 40 msPo rozdzieleniu zapytania o stronę i licznika rekordów
Wielostronicowy raport PDFok. 50 msNa rozgrzanym mikroserwisie wydruków

Skrócenie odpowiedzi gridu dokumentów z około 1,5 s do około 40 ms wynikało z rozdzielenia jednego zapytania na dwa: jedno pobiera stronę wyników, drugie liczy rekordy. Czas 50 ms dla raportu PDF dotyczy rozgrzanego mikroserwisu wydruków.

Magazyn z dużym ekranem panelu analitycznego danych
Grafika poglądowa: ekran z danymi w hali magazynowej. Pomiary z noty technologicznej dotyczą czasu odpowiedzi systemu, a nie wyników magazynu.

Pakiety na platformie GT

Cztery pakiety na wspólnym rdzeniu.

Oferta na platformie GT dzieli się na pakiety. Poniższa tabela pokazuje, które z nich istnieją, i zaznacza granicę z Studio WMS.net na ST lub RS.

Pakiety dostępne na platformie GT
PakietZakresUwagi
WMSMagazyn na platformie GTBez pełnej obsługi partii z datą ważności i FEFO
NARNarzędziowniaZakres ustalany w analizie przedwdrożeniowej
MAWAwizacjeZakres ustalany w analizie przedwdrożeniowej
Pakiet wspólny i systemowyTransakcje i zapytania wspólne dla pakietów130 transakcji i 219 zapytań codeSQL

Pakiet MAW obsługuje awizacje, a więc ten sam obszar, który opisuje strona o awizacji dostaw i oknach czasowych. Funkcje opisane na tamtej stronie dotyczą jednak obecnie Studio WMS.net na ST i RS, a nie pakietu MAW.

Zakres i dojrzałość platformy

Stan platformy bez zaokrąglania w górę.

Platforma GT jest młodsza od ST i RS i nie zastępuje ich w każdym zastosowaniu. Poniżej stan na 6.10.2026.

Stan platformy GT na 6.10.2026
ObszarStanCo to znaczy w praktyce
Rdzeń, konfiguracja w Git, mikroserwisyOpisane na tej stroniePakiety: WMS, NAR (narzędziownia), MAW (awizacje) oraz pakiet wspólny i systemowy
HubGTW fazie testówWarsztat do budowy menu i transakcji ze wsparciem AI nie jest jeszcze gotowym narzędziem do pracy
Migrator z ST i RSNie istniejeIstniejące wdrożenie nie zamienia się automatycznie w konfigurację GT; migracje wykonuje się ręcznie
Głębsza logika magazynowaPlanowanaEgzemplarze i serie z rezerwacjami są w planach; pełnej obsługi partii z datą ważności i FEFO w pakiecie WMS jeszcze nie ma
Pakiety RMA i TMSBrak na GTTych zakresów nie ma na platformie GT
Pełne prawa i kody źródłowe platformyPoza zakresem GTRuntime pozostaje własnością SoftwareStudio i jest licencjonowany; dla takiego wymagania buduje się system dedykowany od podstaw

Brak migratora ma proste skutki organizacyjne. Przejście z ST lub RS planuje się jako osobny projekt, a nie jako przełączenie wersji, bo konfigurację przygotowuje się ręcznie w plikach GT. Dopóki HubGT jest w testach, tę pracę wykonuje się bez jego wsparcia.

Pakiet WMS na platformie GT nie ma jeszcze pełnej obsługi partii z datą ważności i FEFO. Magazyn z terminami przydatności wdraża się dziś na Studio WMS.net w wersji ST lub RS.

Z tej granicy wynika praktyczna reguła. GT wybiera się, gdy klient chce uniknąć licencji Microsoft albo potrzebuje wielu wersji językowych. Dochodzi do tego możliwość zmian bez okien serwisowych. Magazyn z partiami i terminami przydatności zostaje na platformach opisanych na stronie WMS SoftwareStudio. Kryteria wyboru zebrano w porównaniu trzech generacji platformy, a zakres konkretnego wdrożenia ustala analiza przedwdrożeniowa.

Licencja i model zakupu

Licencja wieczysta i wycena indywidualna.

Przy instalacji u klienta platformę GT kupuje się jako licencję wieczystą. Koszt bieżący to Software Maintenance: aktualizacje runtime i poprawki bezpieczeństwa. Rezygnacja z SM nie odbiera prawa do korzystania z systemu, a tylko wstrzymuje aktualizacje. Cena licencji nie zależy od liczby dokumentów ani lokalizacji.

Wersje WMS na platformie GT i moduły dedykowane są wyceniane indywidualnie, dlatego nie podajemy tu kwot. Różnicę między jednorazową licencją a abonamentem opisuje strona o licencji wieczystej i abonamencie WMS. Stawki abonamentowe Studio WMS.net na ST i RS są w cenniku, a własny zakres można opisać w formularzu wyceny. Ogólny obraz produktu daje strona System WMS.

Słownik pojęć

Pojęcia z zakresu platformy GT

Terminy techniczne, które padają przy opisie platformy StudioSystem GT.

MMModular monolith
Aplikacja podzielona na moduły, które działają w jednym procesie. Wywołania między modułami nie przechodzą przez sieć, a wdrożenie obejmuje jeden proces na instancję.
F-CFail-closed
Zasada, że przy błędzie walidacji system odmawia, zamiast przyjąć wadliwe dane. W GT konfiguracja, która nie przejdzie walidacji, nie wchodzi do użycia.
RSRunSteps
Silnik logiki serwerowej platformy GT. Wykonuje kroki opisane w YAML i wywołuje wersjonowane zapytania codeSQL.
SQLcodeSQL
Wersjonowane zapytania do bazy, zapisane jako pliki i używane przez silnik RunSteps. Pakiet wspólny i systemowy GT ma ich 219.
GITGitOps
Sposób wdrażania, w którym stan środowiska wynika z repozytorium Git. W GT obejmuje to także sekrety, zarządzane przez SOPS i age.
RPReverse proxy
Serwer przyjmujący ruch od przeglądarek i przekazujący go do aplikacji. W GT pełni tę rolę Traefik.
OTELOpenTelemetry
Standard zbierania śladów i metryk z aplikacji. W GT ślad zaczyna się w przeglądarce i obejmuje rdzeń oraz mikroserwisy.
I18Ni18next
Biblioteka wielojęzyczności, w której tłumaczenia leżą w pliku. Dodanie języka portalu w GT to plik tłumaczeń i szablony.
FAQ

Platforma StudioSystem GT - najczęstsze pytania

01

Czym GT różni się od wersji ST i RS?

GT zmienia runtime na .NET 10, bazę na PostgreSQL 18 i system serwera na Linuksa w kontenerach Docker. Konfiguracja leży w plikach YAML, HTML, JS i CSS w Git, a nie w kodzie stron ani w bazie. Szczegółowe zestawienie podaje porównanie trzech generacji.

02

Czy pakiet WMS na GT obsługuje partie i FEFO?

Jeszcze nie w pełni. Pakiet WMS na GT nie ma obsługi partii z datą ważności i FEFO, a głębsza logika magazynowa (egzemplarze i serie z rezerwacjami) jest planowana. Magazyn z terminami przydatności wdraża się dziś na Studio WMS.net w wersji ST lub RS.

03

Gdzie działa platforma GT: w chmurze czy u klienta?

Oba warianty używają tego samego obrazu kontenera. Serwer klienta musi być maszyną z Linuksem z dostępem do kontenerów. Hosting współdzielony PHP nie wystarcza.

04

Jak zmienić funkcje bez przerwy w pracy systemu?

Pliki konfiguracji są wczytywane na gorąco, więc podmiana pliku nie wymaga restartu ani okna serwisowego. Przed użyciem plik przechodzi walidację w trybie fail-closed. Plik, który jej nie przejdzie, nie zostaje wczytany.

05

Kiedy GT nie jest dobrym wyborem?

Gdy klient wymaga przeniesienia pełnych praw i kodów źródłowych platformy, bo runtime GT pozostaje własnością SoftwareStudio i jest licencjonowany. W takim przypadku buduje się system dedykowany od podstaw w C#/.NET 10, Vue 3 i PostgreSQL, z repozytorium dostępnym dla klienta. GT odpada też tam, gdzie wymagana jest dziś pełna obsługa partii i FEFO.

Chcesz sprawdzić, czy platforma GT pasuje do Twojego magazynu?

Opisz proces w formularzu wyceny, a analiza przedwdrożeniowa rozstrzygnie, czy właściwa będzie platforma GT, czy Studio WMS.net na ST lub RS.