Using Raspberry Pi as Thin Client
A thin client, or lean client, is a type of computer that relies entirely on its network connection to accomplish tasks. A typical laptop or desktop PC—otherwise known as a fat client—has the memory, storage, and computing power to run applications and perform computing tasks on its own. A thin client, on the other hand, functions like a tv; it only needs to draw the screen and render the sound. The actual computing power residing on a networked host ( or server ). The hosts may be on-site or in the cloud. A thin client acts like an interface and the network server computer does all the real work, like saving files, processing data, and controlling certain functions of the clients, like whether they can download things or not. This type of setup is commonly used in places with lots of people simultaneously using computers, like businesses or schools. Thin clients do far less work than regular PCs, and therefore, they need fewer resources. A thin client will not have a high-end graphics card, for example, or an expensive hard drive for storage. It will also have less memory than a PC. Each of these components comes with considerable cost. Though it is easier to maintain than a traditional workstation, it also has some downsides, including the lack of peripherals.
A thin client can be used to connect to another pc or virtualized pcs. Scalability comes when using thin clients Within a virtualized desktop setup, where one where each user has a remote desktop, each individual desktop exists within a virtual machine, which is simply a partition inside a centralized server. Each of these users has their own applications and operating system, similar to when they use a normal PC. One example is When terminal services are shared; the users at the various thin client stations can use the same operating system and applications because they are run from a central server. Users are limited with what they can do because all activity has to be approved by the IT department. This can benefit the organization, as user activity can be limited to the use of specific applications.
Remote desktop software can use several different protocols, including Microsoft RDP, Citrix ICA, VNC, and VMware Blast. Remote desktop gives users the ability to use a desktop computer or virtual machine from a separate computer. Remote desktop users can access their desktop, open and edit files, and use applications as if they were actually sitting at their desktop computer. Employees can use remote desktop software to access their work computers when they are working from home. Think of a remote-controlled car. The user can control the car from afar, and their commands are transmitted to the vehicle. Using RDP is similar; the user's mouse movements and keystrokes are sent to their desktop computer over the Internet instead of over radio waves. The user's desktop is displayed on the computer they are connecting from, just as if they were sitting in front of it.
Remote desktop access is different from cloud computing, even though both allow employees to work remotely. In cloud computing, users access files and applications that are stored in cloud servers. In contrast, when using remote desktop software, users are actually accessing their physical desktop computer, and can only use files and applications saved locally on that desktop.
In order for the thin client to connect to and control the server, you need to have a protocol on how they communicate. There are several protocols available for remote computing. The big three protocols are Microsoft's Remote Desktop Protocol ( RDP ), Citrix Independent Computing Architecture ( ICA ), and Virtual Network Computing ( VNC ). Microsoft RDP and Citrix ICA are both proprietary and VNC is Open SOurce.
RDP was initially released by Microsoft and the client is available for most Windows operating systems. The RDP client is also available for IOS and Linux. The RDP protocol opens a dedicated network channel for sending data back and forth between the connected client and server ( the computer being controlled ). It uses network port 3389 as default for this purpose. Mouse, keyboard, display, and all other necessary data are sent over this channel via TCP/IP, which is the transport protocol used for most types of Internet traffic. RDP also encrypts all data so that connections over the public Internet are more secure. Because keyboard and mouse activity are encrypted and sent over the Internet as well as the display, there are some delays. For instance, if a user double-clicks on an application to open it, the "double click" may not take place for a few milliseconds since the user's action is transmitted to the desktop before being carried out. Then, when the application opens, there is another short delay while the display is transmitted back to the user.
ICA stands for Independent Computing Architecture. It is a proprietary protocol for an application server system, designed by Citrix Systems. The aim of developing ICA was to streamline the data delivery process between a server and a client without tying it to a specific platform. That is why it can run on top of many operating systems including Windows, Linux, iOS. ICA is designed to run over standard network protocols, such as TCP/IP, NetBEUI, IPX/SPX, and PPP. First version of the ICA protocol was developed in 1989-1990 and was used in Citrix Multiuser OS/2. In 1992 Citrix signed licensing agreement with Microsoft for NT Server which was called WinFrame, a multi-user version of Windows NT 3.51 which was repackaged by Citrix. Citrix Systems licensed the Windows NT 3.51 operating system from Microsoft. WinFrame allowed multiple users to logon and execute applications on the server with use of ICA protocol. Citrix licensed the Multi-Win technology to Microsoft a few years later, which later became the basis for Microsoft’s Terminal Services. ICA is an ancestor of Microsoft RDP protocol.
Virtual Network Computing (VNC) is a system that allows you to connect remotely from one computer to another computer's graphical desktop. Both computers must be a part of the same network. A VNC server is a computer that can be seen and controlled by a remote keyboard and mouse. The VNC client, called VNC viewer, is the application used to access the VNC server. VNC works by grabbing and sending screen graphics frame buffers using the remote framebuffer protocol. RFB considers a viewed screen of GUI graphic rasters as a set of grids dividing the screen into smaller areas. When a grid changes, only the changed grid is sent. Each single change on a screen doesn't require the app to send the entire viewed screen. This conserves bandwidth and transmission when communicating changes from the VNC server screen to the VNC viewer. VNC controls keyboards, video, and mouse movement only. USB, sound/audio, and connected devices cannot be redirected across the same network circuit.
The Raspberry Pi checks all the boxes for a thin client. It has a small form factor, uses low power and best of all, it is cheap. The Raspberry Pi itself is about the size of a credit card at only 3.5in x 2.2in x 2.2 inches. As an added benefit, you can put the single board computer in a case that mounts directly to the VESA mount available on most monitors. It also consumes very little power at about 5.5W. Best of all, you build a thin client using the Raspberry Pi for less than $100. Several manufacturers of thin clients have already taken notice and have Raspberry Pi based thin clients including Viewsonic, NCompute and 10Zig.
The Raspberry Pi, just like any computer, needs an operating system that is stored somewhere. In the Raspberry Pi, the storage is a user replaceable microSD card. There are several readily available operating systems available for the Raspberry Pi. They are available for download on the internet as an img file. Once downloaded, we will need to copy the image to the microSD card. We have another article that shows how to do this at https://ames-pc.com/geek/blogs/blog.html?issue=1949. Once the OS is transferred to the microSD card, all we need to do is insert the microSD card into the Pi and turn it on. Once that is done, we can install the protocols to turn the Raspberry Pi to a thin client.