1. Tradycyjna architektura Serwer–Klient
Przez wiele lat, aby podłączyć USB przez sieć, trzeba było instalować aplikację po stronie serwera na wszystkich komputerach z fizycznie podłączonymi urządzeniami USB i udostępniać każde z nich osobno, aby umożliwić dostęp zdalny. Aplikacja serwera przekierowywała ruch USB z udostępnionego urządzenia do komputera klienta.
Następnie należało zainstalować aplikację kliencką na komputerach, które miały korzystać z urządzeń USB. Program klienta tworzył wirtualne urządzenie USB, które w czasie rzeczywistym wymieniało dane z fizycznym urządzeniem USB, dzięki czemu można było korzystać z niego tak, jakby było podłączone bezpośrednio do komputera klienta.
Główną wadą tego rozwiązania było to, że aplikacje serwera i klienta nie były zamienne. Ponieważ często miały bardzo podobny interfejs, ich używanie na jednym komputerze mogło być mylące. Typowym przykładem takiego podejścia jest rozwiązanie USB over Network firmy FabulaTech.
2. Zunifikowane rozwiązanie
Bardziej nowoczesnym podejściem jest zastosowanie uniwersalnej aplikacji, która działa zarówno jako serwer, jak i klient. Na przykład po zalogowaniu się do konta FlexiHub zobaczysz listę lokalnych urządzeń udostępnionych w sieci oraz listę wszystkich zdalnych urządzeń dostępnych do połączenia.
Nie ma już potrzeby udostępniania każdego urządzenia USB osobno, zmiany ustawień NAT lub zapory sieciowej ani martwienia się o zewnętrzne adresy IP. Dodatkowo FlexiHub korzysta z globalnej sieci serwerów przekierowujących, co zwiększa prędkość połączenia. Jedno kliknięcie wystarczy, aby urządzenie USB z dowolnego miejsca na świecie było dostępne na Twoim komputerze.