When I went home during the weekend, I met my friend, Jamal, who had just returned from college. He told me he was having difficulty coping up in certain topics in his computer science class. When I asked him about the problem he was facing this is what he said.
Jamal: I am unable to understand what Computer Architecture is all about. Could u explain?
Me: Computer architecture is the way in which a system is designed and how the components are connected with each other. It refers to the structure and oraganization of a computer's hardware or system software
Jamal: I am not very clear on this. Could you start from the basics?
Me: Hmmm… well then let me explain a few computer terms. Hardware includes the physical components, such as keyboard, mouse and printer whereas software includes the programs that run on the hardware. Computer is hardware, while an operating system such as Microsoft XP is the software that makes the hardware functional.
An operating system is considered the backbone of a computer, managing both software and hardware resources. It provides a software platform on top of which other programs, called application programs, can run. Application includes database programs, word processors, and spreadsheets. It refers to the software package you use to create your documents, such as AppleWorks, PageMaker, FreeHand, Quicken, Photoshop, Internet Explorer, Mail and othersPlatform: The underlying hardware or software for a system is referred to as a platform. Once the platform has been defined, software developers can produce appropriate software and managers can purchase appropriate hardware and applications. What we need to understand now is how the platforms are connected to each other and how the applications residing on them exchange data according to the requirements of the user. Here we need to look at the separation of data from applications.
Jamal: What does this mean?
Me: For example, let us look at image editor. Here image editor is the application whereas the images edited using this application is the data. The same application is used to create or edit various images. The same applies to other applications. What is important to remember is that it is always preferable to keep data separate from its application. To go deeper into this let us first define a client and a server. Client is the requester of services and Server is the provider of services. There can be different tier architectures based on the user requirements.
Jamal: What kind of tiers?
Jamal: So is there an alternative available?
Me: Yes here the two tier architecture comes into picture. A two-tier system consists of a client and a server. Here the database is stored on the server, and the interface used to access the database is installed on the client. It places database management on the server and splits the processing management between client and server, creating two layers. Since processing is shared between the client and server, more users can interact with such a system. But a limitation of this system is when the number of users exceeds 100, the performance begins to deteriorate.
Me: Yes, the three-tier architecture overcomes this limitations. The third tier is between the client and the server. This middle tier provides process management where business logic and rules are executed and can accommodate hundreds of users by providing functions such as queuing, application execution, and database staging. The three tier architecture is used when an effective distributed client/server design is needed that provides increased performance, flexibility, maintainability, reusability, and scalability, while hiding the complexity of distributed processing from the user.
Another tier architecture is the multi-tier architecture. Here the web browser replaces the client software on the user machine, which is not in a position to communicate with the application server directly. It needs an intermediate server to communicate effectively. Hence, a web server is used. This eliminates the need for installation of any software. Though here there is no difference between the internet and a private wide-area network, it would be more cost effective to have it available on the internet.
Jamal: This is a very interesting concept.