A Conversation on Systems Architecture

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. 

Aoperating 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? 

Me: Let’s begin with the simplest. Single tier architecture- This is where a single computer contains a database and a front-end to access the database. Generally, this type of system is found in small businesses. A single-tier system requires only one stand-alone computer. This makes it cost-effective. However, a drawback is that only one user can use it at a time. 

JamalSo 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.

Jamal: Is there a way to overcome this limitation?

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: Well then, are there no security issues involved?

Me: This can be taken care of by using a firewall. A firewall is a dedicated appliance, or software that runs on another computer, which inspects network traffic passing through it, and denies or permits passage based on a set of rules. Its basic task is to regulate some of the flow of traffic between computer networks of different trust levels. Basically, it is a barrier to keep destructive forces away from your property. In fact, that's why it is called a firewall. Its job is similar to a physical firewall that keeps a fire from spreading from one area to the next.

Jamal: This is a very interesting concept.

Me: Yes. I hope now you have a better understanding of Systems Architecture than you did previously.

Jamal: Yes, I certainly do. This conversation has been very helpful. Thank you ver much.