Sunday, February 3, 2008

System Architecture

Late in the evening my sister was quite confused regarding her IT project. She didn’t know where to begin and what to search and asked me for help. This is the conversation that took between us.

Aslesha : Let me start first with the topic of my project. What is this Systems Architecture?

Me : If we go by the definition, we can say that, Systems Architecture is the design or set of relations between the parts of a system.
Let me give you an example to make it more clear. Suppose we were setting out to build a home. The first thing would be to lay out the floor plans, then group each room by function and place structural items within each room according to their best utility. This is not any arbitrary process but actually is architecture.
The process does not change. It remains the same even if we move from home design to IT system design. Grouping data and processes into information systems creates the rooms of the system architecture. Arranging the data and processes for the best utility is the result of deploying the architecture.
Many of the attributes of building architecture are applicable to system architecture. Form, function, best use of resources and materials, human interaction, reuse of design, longevity of the design decisions, robustness of the resulting entities are all attributes of well designed buildings and well designed computer systems.
Aslesha : Ok. Can you tell me what is this Information Systems Engineering is?
Me : Suppose you have a set of data and you process it to get information. How you engineer this information, how you process it and get the maximum out of it explains Information Systems Engineering.
The way computer science refers to programs, the very same way information systems engineering refers to systems. In the first case, it has data structures and algorithms, while the latter has database and applications.
Aslesha : The way we have different algorithms for different programs, does it hold true for Information Systems Engineering?
Me : Yes, it holds true. Let me give you an idea regarding its types. There are basically four types on the basis of application architecture as it goes with the principle that data must be logically distinct from applications.
· Single Tier Integrated Systems – It follows the simple principle that data must be kept separate from applications even if they are on the same physical hardware, like laptop, desktop or server.
· Two Tier Integrated Systems – Here data is stored in a centralized server whose protocols can be written in certain server softwares like Oracle, mySQL, SQL server, DB2 and applications are stored on individual machines which are generally the users of this database. With the help of LAN (Local Area Network), the client machines or the users are connected to the server using TCP/IP protocols.
· Three Tier Integrated Systems – Here it distinguishes the application architecture into Business Logic and Presentation Logic.
The Business logic does not remain the same. With the changing environment and growing competition, the business rules changes due to which it is kept centrally. This helps to do any changes that are required only at one location.
With the passage of time, Presentation Logic does not undergo many changes. For example- the GUI (graphic User Interface), the window or the buttons remains the same. So it is kept locally so that data transfer over the network is minimized.
It uses WAN (Wide Area Network) to connect the users with the database.
· Multi Tier Integrated Systems – Here we introduce the application of internet in the form of web server to connect the web browsers, who are the users, with the database server.
Aslesha : Do these four types have any advantages or disadvantages?
Me : Yes all the four have same benefits as well as certain loop holes in their structure.
· Single Tier can be used if the business is small and there are no partners. There is only a single entity that uses the available database and processes it to his/her benefit.
· Two Tier can also be used in a small business because any change required can be done centrally, thus reducing the processing burden on server machine when there are considerable amount of users(say a 100).
But it requires high bandwidth when the number of users increases and thus the application might slow down or falter due to poor speed of flow of information. Moreover if the software is changed centrally, all the users have to do the same so as to access the database. Thus there is a problem of maintenance and version control of the distributed software.
· Three Tier also faces with the same problem of high bandwidth requirement and maintenance of software.
· Multi Tier does not require the implementation of a specialist software at each client location as the transfer of information occurs via the internet. It is inexpensive as we don’t have to invest in corporate network.
Internet is insecure as the competitor may try to hack the information and thus requires the implementation of security softwares and firewalls. Moreover the business requires all its applications to be web enabled.
Aslesha : All these architectures seem so complex and all of them have some lacunas. Will it be possible to get a system architecture by combining one or two?
Me : Very beautifully said Aslesha. Actually we can think of a system or an architecture which can be the combination of the Multi Tier.
We can have a consolidation of Multi Tier architecture where the Database, Application Server and the Web Server can all lie on the same machine or in different machines.
We can also have multiple applications where there would be distinct data for specific requirements which would be distributed across more than one machine. This can be developed in-house or can be bought from different vendors.
However, there is a fear of duplication of data as same data is available for different departments. Moreover the management becomes very complex.
Aslesha : Even the combination does not seem to solve our problem, rather it gets complex. How can we then get the best of the breed and also get rid of the complexity?
Me : There is always a solution to every problem.
· There is something called RDBMS or the Relational Data Base Management System. Here there is a central integrated database from where each department can access the necessary information. The problem of duplication of data can be solved and there would be consistency of data across locations and time period. Moreover it is easier to manage and a centrally security system can be employed for user authentication.
· We can also implement ERP (Enterprise Resource Planning) to manage the complexity. This will integrate all the functional areas and synchronize the data across the organization. It can be bought as a single package from reputed vendors, and hence faster to implement and easier to maintain.
· If the company goes global, we can also use internet to connect with our clients. The security problem can be solved by using firewalls at specific locations.
Aslesha : Man is always searching for a way to get rid of the problems and I don’t think it will stop unless and until it has found a way out which is perfect n unbreakable. Thanks a lot. Now I have all the necessary data to do my project.
Me : Anytime dear.

No comments: