Aplikacja internetowa działa w przeglądarce, a cała logika i baza danych zostają na serwerze. Użytkownik wysyła żądanie HTTP, serwer sprawdza jego uprawnienia, pyta bazę SQL Server i zwraca wynik. W Studio WMS.net z tego modelu korzysta także moduł internetowy dla kontrahentów, w którym właściciel towaru widzi wyłącznie własne stany i dokumenty.
Jak program internetowy działa po stronie serwera i przeglądarki
Przeglądarka wysyła żądanie HTTP, serwer je odbiera i oddaje odpowiedź. W pierwszych latach sieci WWW odpowiedzią był gotowy plik HTML, odczytany z dysku według adresu URL. Taka strona statyczna nie reagowała na dane użytkownika, więc do wystawiania dokumentów magazynowych się nie nadawała.
Aplikacja internetowa dokłada do tego warstwę logiki. Serwer WWW przekazuje żądanie do kodu, w stosie Microsoftu zwykle jest to aplikacja w C# hostowana na IIS. Kod odpytuje bazę SQL Server i składa odpowiedź z wyniku zapytania, więc ten sam adres zwraca inną treść każdemu zalogowanemu użytkownikowi.
| Warstwa | Co robi | Gdzie się znajduje |
|---|---|---|
| Przeglądarka | Wyświetla formularze, wysyła żądania, odświeża fragmenty listy | Stanowisko użytkownika, terminal, tablet |
| Serwer aplikacji | Sprawdza sesję i uprawnienia, wykonuje logikę dokumentów | IIS w serwerowni klienta albo w chmurze |
| Baza danych | Przechowuje stany, lokacje, dokumenty i historię operacji | Microsoft SQL Server, jedna centralna instancja |
Z takiego podziału wynika najważniejsza cecha programu internetowego: stan systemu istnieje w jednym miejscu. Dokument zatwierdzony na hali jest od razu widoczny w biurze, bo nie ma lokalnych kopii do uzgodnienia. Ten sam układ opisuje strona o programie magazynowym w ujęciu funkcjonalnym.
Utrzymanie systemu w przeglądarce a instalacja na stanowiskach
Program instalowany lokalnie wymaga zgodnego systemu operacyjnego i aktualizacji na każdym komputerze z osobna. Wersja przeglądarkowa przenosi ten ciężar na serwer. Poprawkę wdraża się raz, a użytkownicy dostają ją przy kolejnym wejściu na stronę.
| Parametr | Klient instalowany lokalnie | Aplikacja internetowa |
|---|---|---|
| Aktualizacja | Na każdym stanowisku osobno | Jednorazowo na serwerze |
| Wymagania sprzętowe | Zależne od wersji programu i systemu | Aktualna przeglądarka i dostęp do sieci |
| Dostęp spoza firmy | Przez VPN albo zdalny pulpit | Przez adres HTTPS, po zalogowaniu |
| Spójność danych | Wymaga synchronizacji kopii | Jedna baza, bez synchronizacji |

Studio WMS.net - logowanie do systemu
Ekran logowania do systemu Studio WMS.net wyświetla formularz uwierzytelniania na ciemnym tle ze zdjęciem magazynu wysokiego składowania. Formularz zawiera pole Użytkownik (przykładowo demo_wms_lm) oraz pole Hasło z maskowaniem wprowadzanych znaków. Logowanie inicjuje przycisk Zaloguj w kolorze niebieskim. Logo SoftwareStudio widoczne jest w prawym dolnym rogu ekranu. Układ graficzny podkreśla branżowy charakter systemu dedykowanego operacjom magazynowym.
Przeglądarka nie oznacza jednak wolnej pracy na hali. Terminale z Androidem korzystają z tej samej bazy co biuro, a obsługę skanerów opisuje materiał o aplikacji magazynowej na Androidzie. Jeśli łącze zawodzi, praca czeka na odzyskanie sieci, dlatego zasięg Wi-Fi w hali trzeba sprawdzić przed wdrożeniem.
Uwierzytelnianie i sesja użytkownika w aplikacji WWW
Protokół HTTP nie pamięta poprzedniego żądania. Po poprawnym logowaniu serwer tworzy więc sesję i przekazuje przeglądarce jej identyfikator, najczęściej w ciasteczku. Każde kolejne żądanie niesie ten identyfikator, a serwer ustala na jego podstawie, kim jest użytkownik i jakie ma role.
Uprawnienia sprawdza się na serwerze przy każdym żądaniu, a nie przez ukrycie przycisku w interfejsie. Osoba znająca adres wywołania AJAX wyśle je niezależnie od tego, co widzi na ekranie.
- Transport: połączenie szyfrowane protokołem HTTPS chroni hasło i identyfikator sesji przed podsłuchem w sieci.
- Hasła: baza przechowuje wynik funkcji skrótu z solą, a nie hasło w jawnej postaci.
- Sesja: wygasa po określonym czasie bezczynności, co ogranicza skutki pozostawionego otwartego stanowiska.
- Rejestr zdarzeń: operacje użytkowników zapisują się w historii, więc zmianę stanu można przypisać do osoby i czasu.
Podział uprawnień na role opisuje strona o rolach i użytkownikach w systemie WMS, a sam mechanizm logowania omawia materiał o logowaniu i autoryzacji. Możliwości silnika bazy, w tym kont i uprawnień na poziomie danych, wylicza dokumentacja Microsoft SQL Server.
AJAX i asynchroniczność zamiast przeładowania strony
Pełne przeładowanie strony po każdym kliknięciu zużywa łącze i przerywa pracę. Lista dokumentów albo podpowiedź asortymentu pobiera się więc wywołaniem AJAX w jQuery, a serwer zwraca same dane w formacie JSON. Przeglądarka podmienia wtedy tylko wiersze tabeli, bez ponownego rysowania nagłówka i menu.

Studio WMS.net - pulpit kierownika magazynu
Ekran główny Studio WMS.net prezentuje aktualny stan operacji magazynowych w formie trzech wykresów. Dwa wykresy kołowe pokazują rozkład zleceń według statusu (5374 zrealizowanych, 1104 anulowanych, 168 do realizacji, 18 w buforze) oraz strukturę typów dokumentów magazynowych (PZ, WZ, PZB, WZB, ZPZ, ZWZ i inne). Wykres słupkowy prezentuje top 10 kontrahentów z największą liczbą obsługiwanych palet. Menu główne zawiera sekcje NOWY, MAGAZYN, KARTOTEKI i INFORMACJE. Widoczna wersja systemu v2026.1.4.9500.
Po stronie serwera pomaga asynchroniczność w C#. Metoda z async i await zwalnia wątek na czas oczekiwania na bazę, więc ta sama maszyna obsłuży więcej jednoczesnych żądań. Mechanizm opisuje dokumentacja programowania asynchronicznego w C#, a składnię wywołań w jQuery podaje opis funkcji jQuery.ajax.
Zapytanie z przeglądarki do bazy ma sens tylko wtedy, gdy kończy się szybko. Dlatego listy dokumentów ładuje się stronami, a filtrowanie po typie, kontrahencie i dacie wykonuje się w zapytaniu T-SQL, nie w przeglądarce. Przy kilkudziesięciu tysiącach wierszy różnica jest widoczna już na pierwszym ekranie.
Błędy sieci i bezpieczne ponawianie operacji
Łącze Wi-Fi na hali zrywa się częściej niż połączenie w biurze. Przeglądarka może wysłać żądanie zatwierdzenia dokumentu i nie dostać odpowiedzi, mimo że serwer je wykonał. Użytkownik klika drugi raz, a system dostaje to samo polecenie dwukrotnie.
Zabezpieczeniem jest idempotentność operacji. Żądanie niesie numer referencyjny dokumentu, a procedura składowana sprawdza, czy dokument o tym numerze został już zatwierdzony. Jeśli tak, zwraca jego aktualny status zamiast tworzyć ruch magazynowy po raz drugi. Zapis dokumentu i ruchu stanu odbywa się w jednej transakcji, więc przerwane połączenie kończy się wycofaniem zmian, a nie stanem pośrednim.
Przycisk zatwierdzenia blokuje się w przeglądarce po pierwszym kliknięciu, ale ochrona przed duplikatem musi istnieć także w bazie. Blokada w interfejsie nie powstrzyma ponowienia z innej karty ani z drugiego urządzenia.
Moduł internetowy dla kontrahentów
Firma, która prowadzi magazyn w modelu outsourcingu, obsługuje wielu właścicieli towaru. Każdy z nich chce wiedzieć, ile sztuk leży na półce, bez telefonu do magazynu. Moduł internetowy daje im dostęp do własnych danych przez przeglądarkę, po zalogowaniu na konto kontrahenta.
| Operacja kontrahenta | Efekt w systemie | Ograniczenie |
|---|---|---|
| Podgląd stanów magazynowych | Aktualne ilości według lokacji i partii | Tylko towary danego właściciela |
| Polecenie wydania | Zlecenie dla magazynu, odpowiadające zleceniu wydania ZWZ | Realizuje je magazyn, kontrahent nie zdejmuje stanu |
| Awizo dostawy | Zapowiedź przyjęcia widoczna dla planisty | Okno czasowe zatwierdza magazyn |
| Kontrola dokumentów | Wgląd w dokumenty przyjęcia i wydania | Bez edycji dokumentów zatwierdzonych |

WMS - ZWZ zlecenie wydania z magazynu z pozycjami
Ekran formularza ZWZ (Zlecenie Wydania z magazynu) z wypełnionym nagłówkiem. Typ: ZWZ, Numer referencyjny: 6391532942386037. Kontrahent: ABT (KRAKÓW), Termin realizacji: 2026-05-29. Pola: Odbiorca, Przewoźnik, Nr awizo, Uwagi, checkbox Wysoki priorytet. Sekcja Pozycje zawiera wyszukiwarkę Asortymentu i Ilość. Dochodzi pole Uwagi. Przyciski Zapisz i Usuń zarządzają dokumentem. Przycisk Bufor działa osobno. ZWZ jest dokumentem planistycznym - na jego podstawie wystawiany jest WZ przy fizycznej kompletacji towaru.
Kontrahent widzi tylko własne dane, bo filtr po właścicielu towaru nakłada serwer, a nie przeglądarka. Dzięki temu pominięcie interfejsu nic nie daje. Zapowiedzi dostaw trafiają do planowania ramp, które opisuje system awizacji dostaw do magazynu, a wspólną platformę dla przewoźników prezentuje strona awizacji dostaw VSS.
Gdzie przechowywać dane i jak je zabezpieczyć
Aplikację internetową można utrzymywać w chmurze publicznej, na przykład w Microsoft Azure, w chmurze prywatnej dostawcy albo na serwerach klienta. Wybór zależy od polityki bezpieczeństwa i wymagań wydajnościowych. Każdy z wariantów wymaga regularnych kopii bazy SQL i ograniczenia dostępu do serwera.
Wersja chmurowa zdejmuje z klienta obsługę sprzętu, ale nie zdejmuje odpowiedzialności za konta użytkowników. Hasła i role ustawia administrator, on też określa okres ważności sesji. Z tego powodu wdrożenie zaczyna się od listy ról, a nie od konfiguracji serwera. Szczegóły wariantów opisuje materiał o aplikacji magazynowej online, a pełny opis produktu znajduje się na stronie Studio WMS.net.
Spójność z systemem finansowym zapewnia integracja po stronie serwera, bez przepisywania dokumentów ręcznie. Zasady podziału danych między magazyn a ERP opisuje integracja ERP z WMS.