Have you walked into a library and used one of the many terminals that they have from which you can look up your account information, search for books or even browse a web? If so, you are probably using a terminal service. In this video, we are going to see what terminal services are, and then next we're going to look at applications services and hosted instances. The earliest version of terminal services was realized as remote desktop services. So, these were based on mainframe computers, that provided the processing or computational needs and storage. Around it, were what are known as dumb terminals or thin clients. The mainframe computers would provide all the computational power, as well as storage, whereas the dumb terminals would provide simply a interface to the user, such as a mouse or a screen to interact with the mainframe computer. Each of the terminal gets a share of the time from the mainframe central processing unit in order to provide any kind of computational power. These terminals are called thin clients, and the terminals get a window to open an application, which resides on the terminal services server. So, as a client, you would simply be using the interface provided by the monitor and the mouse, in order to interact with the mainframe computer and run any kind of applications or get results from the mainframe computer, which is the actual processing power. Your terminal does not have any computational power. Now, this structure is very robust to failures. This is because if one of the terminal were to fail because of a hardware failure, the user could simply use another terminal in order to access the services and the applications, because the terminal is simply an interface that they're using in order to interact with applications that are running in the mainframe. Thin clients are also called slim clients or lean clients. It is a computer or a computer program that depends heavily on some other computer that is a server to fulfill all its computation needs. So, thin clients would be depending on some other computer to fulfill all the computational and storage needs that the users have. Web thin clients provide a web browser and rely on web app to provide general-purpose computing functionality. Examples of web thin clients include Google's Chrome. Now, let's look at application services. Application services use terminal services concept, but they realize this as a thin client application server computing model. So, we know about the client server computing model in which one computer acts as the client, which is the user who is requesting for some service, and the server is the computer that has the application running and can provide a response to the user. So, that's the traditional client-server architecture. In the case of application services, the clients are the thin clients, that is those which do not have the computational or the storage power, and the servers are the application servers. So, we have a client server computing model with the client as the thin client machine, and the server as the application server. Now, unlike the thin clients of terminal services that are able to access the entire desktop environment, the thin clients in an application service can access only specific applications. Application servers does all the processing and storage, and the clients don't need to run or install the applications. The benefits of this kind of application services is that there is a shared facility at the provider side, which has many different clients accessing the same shared mainframe computer or banks of computers. There is reliability because if one of the machines or the servers fail, other service can take over, and if a client machine fails, they can always move from one machine to another to continue accessing that application. This is also nice from a economics perspective because there is a licensing model typically associated with application services, where a particular user who is signing up for an application service, would be paying some amount every month in order to continue having the application and they don't have to incur a large CapEx in order to develop the application on their own. They can simply continue using it from this shared facility with other clients, who also need access to that application. Finally, we're going to look at another realization of cloud computing, which is hosted instances. Data centers or cloud providers can provide what are known as posted instances. Cloud providers or data centered providers, would have many servers working together which provide the hardware and the operating system, which are then virtualized in order to create a single pool of resources. Virtualization provides an environment where the underlying hardware resources are virtualized into a single pool of resources that can be shared across multiple clients. So, when a client requires some resources in order to develop their own application and they want to have an operating system instance on which they can develop their application, they can rent a space from these data centers. Clients can create their own instances of operating systems running on top of the virtualization layer in the cloud providers virtual environment. They can configure their own instances according to the resource needs of the different applications or software that they are planning to run. The clients can also pay based on their usage. The benefits of having this kind of a model of hosted instance, that is where a data center or a cloud provider like Amazon, Google, or Microsoft is hosting the clients instance, that is the clients operating system and applications are running on the virtualized hardware of the data center, there are certain benefits of this kind of realization. For the providers, they can get economies of scale since the same shared resource is being used by different clients. For the clients, since they are hosting the instance on the data centers hardware, they don't have to incur the CapEx costs associated with having owning this hardware, and they can get a cheaper rate since the hardware resources that the data center had is being shared across many clients. So, now that we have looked at all these different realizations of cloud computing, we are going to revisit the notion of virtualization, which is at the heart of cloud computing.