Jedynym wymaganiem, stawianym modułom Arduino, z których chcemy budować cienkiego klienta jest możliwość połączenia się z Internetem, dlatego też wybrano do prezentacji dwa moduły, wyposażone w interfejs Wi-Fi. Dodatkowo, z uwagi na ergonomię obsługi, dobrze jest wybrać moduł, który pozwala na obsługę ekranu dotykowego i wyświetlacza o relatywnie dużej rozdzielczości.
Czym jest maszyna typu thin client
Thin Client to minimalistyczny sprzęt, który zapewnia interfejs użytkownika łączący się z rzeczywistą maszyną przetwarzającą tam, gdzie użytkownik pracuje. Taki system można realizować np. używając taniego laptopa z VNC lub RDP do połączenia się do serwera Windows. Tutaj laptop jest cienkim klientem.
Cienki klient nie wymaga urządzenia o dużej mocy obliczeniowej, ponieważ wszystkie zadania są uruchomione na serwerze, dlatego nazywa się właśnie cienkim. Rozwiązanie to nie jest niczym nowym, w ubiegłym stuleciu często stosowano takie systemy w postaci terminali i komputerów klasy mainframe. Terminal to też cienki klient.
Architektura taka ma wiele zalet, jeśli może być wykonana z taniego sprzętu. Ale jak tani może on być? Sun Microsystems Sun Ray jest dobrym przykładem Thin Clienta z ubiegłego wieku, ma nawet specjalny, tani procesor o niskim poborze mocy, jednak koszt jednostkowy takiej maszyny jest nadal bardzo wysoki. Następnym przykładem może być Intel, który wprowadził tanie procesor ATOM. Wielu dostawców komputerów, w tym cienkich klientów (np. HP, Dell itp.) korzysta z CPU ATOM, dostarczając rozwiązanie typu Thin Client. Jednak nadal komputer taki wymaga podłączenia monitora, klawiatury i myszy. Po przeliczeniu kosztów tych komponentów, całkowity koszt jest niewiele niższy niż w przypadku standardowego komputera stacjonarnego.
Jak zatem uzyskać realną oszczędność? Co powiecie na użycie do zbudowania cienkiego klienta jakiegoś modułu oprogramowanego w Arduino IDE, który obsługuje Wi-Fi i jest wyposażony w ekran dotykowy? Tak niski koszt powinien być wystarczający, aby nazwać tego klienta rzeczywiście cienkim.
W pierwszej kolejności przyjrzyjmy się wymaganiom poszczególnych elementów, protokołów i interfejsów. W dalszej części artykułu zaprezentowano przykładowe realizacje tego rodzaju systemu.
Protokół komunikacyjny
Wiele firm próbowało opracować własnego Thin Clienta, więc pojawiło się wiele protokołów komunikacyjnych. Sun Ray ma własny protokół komunikacyjny SRSS umożliwiający dostęp do serwera, a następnie obsługuje protokół RDP. RDP jest powszechnym protokołem dla zdalnego łączenia się do komputera z systemem Microsoft Windows, ale serwer RDP nie jest łatwy do uruchomienia na innym systemie operacyjnym.
VNC to wspólna nazwa szeregu różnych zdalnych programów, które używają protokołu RFB do komunikacji między klientem a serwerem. Ponieważ jest to protokół open-source, strona serwera może być zaimplementowana w różnych systemach operacyjnych, takich jak Linux, MacOS i Windows. Po stronie klienta aplikacja również zaimplementowana może być w różnych środowiskach desktopowych i mobilnych. VNC ma nawet klienta w wersji Java i może działać w przeglądarce internetowej. Ponieważ protokół RFB jest open source, można go rozszerzyć na dowolne platformy. Links2004 zaimplementował klienta VNC na platformie Arduino i to jest punkt wyjścia tego projektu.