Sunday, February 3, 2008

Recalling what happened in class (systems architecture) – a conversation with me

INNER: ME: So what have you learned on the first day of the third trimester?
ME: We had a class on systems architecture taken by Prithwis – fyi, Dr. Mukherjee has asked us to address him on a first name basis.
INNER: ME: Cool…then let’s have a short recollection of the class.
ME: Ok…give me a second to recall.
INNER: ME: Take your time!
ME: First, let us understand the difference between computer science and information systems engineering – the former refers to programs where data structures describe what is to be processed and algorithms specify how it is to be processed.Coming to information systems engineering, it refers to systems which consists of a database that describes what is to be processed and applications which specifies how it is to be processed.Since it is often necessary to constantly update certain data, we must keep in mind that data must be logically distinct from applications.
INNER: ME: Ok, I’ll keep that in mind!
ME: Now let us look at the evolution of systems architecture.First came the basic single tier integrated system where the data and applications were on the same piece of hardware and we needed to separate them.Thus came the two tier, client server architecture where data exists on a separate database while the individual applications lie in the individual machines of the user. The data is accessed through WAN. This uses a GUI interface and does not place any burden on the server machine even when there are a huge number of users. It has its downside too – it needs a high bandwidth and there are software version control issues. If there is a change in the application system, one would have to update the application system on each and everyone’s computer.
INNER: ME: What’s GUI?
ME: A graphical user interface or GUI is a type of user interface which allows people to interact with a computer and computer-controlled devices. It presents graphical icons, visual indicators or special graphical elements called "widgets". Often the icons are used in conjunction with text, labels or text navigation to fully represent the information and actions available to a user. But instead of offering only text menus, or requiring typed commands, the actions are usually performed through direct manipulation of the graphical elements.The two-tier client evolved into a three tier architecture where on the one side we have the database on a separate hardware and the business application on another while on the other side we have the users who access the database and the business application from their machines through WAN.
INNER: ME: So what’s the basic advantage?
ME: Therefore, we have centralized the business logic.
Now we come to multi tier architecture – here the basic system is just like three tier architecture except we have a web server complimenting the database and business application. Thus the users can access the data and the application through the internet.
INNER: ME: What’s the difference between WAN and internet?
ME: The difference is WAN is private and can be accessed only from certain locations while internet is public.
Coming back to the two tier architecture, assume an organization where we have different departments – finance, sales, HR, etc. Now each one would have a separate database for each of the departments and to process the information each user would have a separate business application on their own machines. Therefore, management and up gradation of this becomes very complex as everyone would have specific requirements and the applications would be from different vendors or developed in-house.
INNER: ME: So how do you work around this problem?
ME: These complexities are managed by various methods, the first being RDBMS.
INNER: ME: RDBMS?
ME: Relational Database Management System – which is somewhat like a DBMS in which data is stored in the form of tables and the relationship among data, is also stored in the form of tables. There is an integrated database where all the data is stored on one server while the applications reside on the user’s machine. This gives us the advantage of non-duplication of data, consistency of data across locations and is easier to manage and backup.
INNER: ME: Wait up…if I am in a different department and want to access information of another, what do I do? RDBMS still doesn’t solve this problem. Is there anything that can help?
ME: Of course…the second type of system which is ERP implementation is where we integrate all data and processes of an organization into a unified system. This is done by a single vendor. In this system we have the database on one server while the business applications on another and the software required to access and process the data is also the same for all users. The advantages of this system is a tighter integration across all functional areas, no separate activity is required to synchronize data and this can be purchased as a single package from established vendors. One can benefit from best practices available with other companies while it is also faster to implement and easier to manage and maintain.
Within this there is also a system for when we have a special requirement. Here certain users may want to access some special data apart from the normal available data. This requires a separate data warehouse housed in a separate server with the special data. In order to access this, the user must also have special software installed on his computer.
A variation of this is when we have a large, complex and distributed system where we have the database, application and web access on separate servers which is connected via WAN and the internet. One may point to the fact that hackers may be able to penetrate and access the data. This problem can be addressed with the help of firewall servers.Well that’s about it.
INNER: ME: Hmmm…that sounds interesting…so I guess you didn’t sleep in class!!