Cloud Computing 08 Client Server Architecture
Cloud Computing 08 Client Server Architecture
This video explains about the evolution of IT Architecture. It explains about Client Server Architecture in detail as well as N Tier Architecture.
In this video let us take a look at the prominent architecture that is being used in the IT industry.
And that is called, Client Server Architecture. In this architecture, there will be one or more server serving multiple clients. The server will have the server component of an application, while the client PCs will be installed with a client piece of that software. For example, if I make a Server as just a File Server, then there needs to be a piece of code running in the Server computer which enables the sharing of the files from it. Then another piece of code needs to be installed in all the client computers which can consume those shared files.
In a Windows environment, that piece of code is in-built in both the server and the client operating systems. It is generally the Windows File Explorer application that you can see in your windows PC.
However, applications were written using this Client Server Architecture. For example, Microsoft developed a Server Software called Microsoft Exchange Server. It is essentially an email server which can reside on its own dedicated powerful host. This piece of software is a Server component of the whole email system. For the clients to access their emails, they needed to have their client component called Microsoft Outlook to be installed on their computers. So, whenever they invoked their Outlook software, it would connect to the email server which is Microsoft Exchange Server and fetch the emails.
Both the server software and the client software required to be configured properly for this to work. Usually the IT administrators are responsible for this to work. Here we can also refer the Exchange Server as an Application Server. Why, basically it serves an application, which is the Email application, to the network.
Like that many applications were born. A company could write its own accounting application software. Then the server code of that software can be installed in a powerful computer which would act as a server. Then the client software code can be installed in the client PCs. Also, a company could buy a Sales Application available in the market and install it. They could install the server piece of that software in the same computer where Accounting Application Server is running or they can install it on its own dedicated server computer. It depends on their need. But they would need to install the client piece in the client computers.
This worked well for couple of years from early 90s to mid-90s. However, as the need for more and faster processing kept growing, this model showed some disadvantages that needed attention. For example, an environment with a large number of Application Servers needed the respective client software to be installed in the client computers. Also, the clients may be running different operating systems. Some were running Windows 3.11, some running Windows 95, some running Linux, Mac OS, IBM OS/2 etc. So, the application developers needed to create a client version for each of these client operating systems.
Also, the client computers were getting overloaded with many client software being installed in there.
These applications stored the data within themselves, meaning that they were also responsible for serving the data. For example, the Accounting application has to store all the accounting information somewhere, right? So, they had their own inbuilt piece of code for that. And it became cumbersome to manage as the data grew larger. The Application Servers started performing poorly. Also, they were not able to share the data. For example, the data stored by the accounting application cannot be read by Sales application, if it wanted to. To solve that issue, they started using Database Server software which followed a certain standard. They would install Database Servers on the same Application Server host and make the applications use the Database Server software to store and manage the data. The Database Server software, would manage the date efficiently. And it allowed the data sharing between many applications. But it still resided on the same host where the Application Servers were running.
Let me simplify the diagram (in the video above) a little in the interest of space. In this picture, the Database Server got its own powerful server computer. So, the Client will contact the Application Server, which will serve the application to the client. And whenever it needs to access the underlying data, the Application Server will contact the Database Server, process it, and will send it to the client. This is actually a Three Tier Architecture. But the evolution of IT architecture did not just stop there.
With Internet becoming a major force not only in the IT industry but also in the human way of life, the architecture evolved much further.
For example, Web Servers came into the picture. And they became the frontline for any application. Every application became a web compliant application, meaning that, they can be accessed and run by just a web browser. So, there isn’t a need for multiple clients to be installed in a client PC. And that took care of the issue of developing multiple versions clients for multiple operating systems.
The client’s browser, which could be Google Chrome or Microsoft Edge would connect to the Web Server. The Web Server may or may not have the Application Server running on the same computer. If it is not, then it will contact the Application Server. The Application Server will contact the Database Server. And that’s how processing happened. Currently, that is the year 2020, it is common to see multiple web servers connecting to multiple Application Servers and Database Servers. So, there could be many tiers between a request that originated from a client’s browser to the answer it received. That’s the reason why this type of architecture is called as N- Tier architecture, where N being any number as designed by the IT Architecture team of that system.
But for me, everything is a Client Server architecture. Each tier interacts with one another as both a server and client, meaning that they provide information and get information. Now let us look at the issues. Have we tackled all these? (Referring to the video above). Yes. We do not have multiple versions of clients. Since we have powerful database software running on their own powerful computers, we have addressed the performance problem that we had from the previous configuration of having both the Application Server and database residing on the same machine. The Database Server can also share the data to numerous applications as needed. So, are we happy? No, things evolve. Sometimes we evolve by going back to older model.
How? Look at your smartphone. iPhone or Android, it doesn’t matter. They may come with at least 20 individual apps preloaded. Then you may have downloaded another 20 or so. Just saying.
These are similar to having multiple client software in the PC. Yet, Apps are useful rather than going to their website from the smartphone. For example, you can browse YouTube using your phone’s internet browser or just download the YouTube app from the app store and use it. Here the app will have everything optimized for YouTube’s content and may be much efficient to use rather than using it through your phone’s browser. However, if you go back to your laptop or desktop, you may find that your browser is much better in browsing YouTube videos than using a desktop version of YouTube if there is any.
Bottom line in IT Architecture is, evolution is constant. It is kind of like, change is the only constant thing. And it doesn’t hesitate to go back in time.