Sunday, February 3, 2008

This conversation is between my friend Poonam and me.

Poonam: It has been three months that I have been working in the finance department, but one thing I have not understood is the IT system design of my organisation. An organisation has to manage uptime requirements and the need to remain both flexible and scalable. In such a demanding scenario, the IT department says that the choice and implementation of appropriate systems architecture becomes critical. I think you are having classes on this subject. Can you tell me what is this systems architecture?

Me: Architecture affects all aspects of software design and engineering. The architect considers the complexity of the application, the level of integration the number of users, their geographical dispersion, the nature of networks and the overall transactional needs of the application before deciding on the type of architecture.

Poonam: What are the components of the architecture?

Me: There are three related components: Presentation, Logic, and Data.
Presentation components for display, keyboard/device handling and data validation;
Logic components implementing applications specific business logic, policies and procedures;
Data access components for retrieving and updating stored information

Poonam: How are these components linked?

Me: Number of possibilities exist for distributing and linking architectural components. Most popular is the concept of architectural tiers.

Poonam: What are architectural tiers?

Me: There are different types.
In single tier, the data, processing and presentation are on a single machine. This is common in mainframe applications.
In two tier architecture, the presentation, logic, and data are divided into two distinct units - the client which executes on a users workstation, and a database server which executes on another node in the network. In two tier implementations, the presentation is handled exclusively by the client and data is stored on and accessed on the server. But the application or business logic can reside on the client or on the database server in the form of stored procedures. The LAN connects client machines to the server using TCP/IP protocols.
In three tier architecture, the presentation, logic, and data components on their own (logical) servers and under the control of tools optimized for each distinct function. The application servers provide program calls to other application components in the same or other servers. These application components, in turn, provide access to non-proprietary database services.
In multiple tier the end-user's browser communicates with Web. All the presentation logic occurs on standard servers.

Poonam: What are the advantages and disadvantages of the different tiers?

Me: Single tier applications are most secure, they are manageable and controllable. However there is no flexibility and growth. There is no user independence, and the availability is not good. Moreover the cost to upgrade a mainframe is substantial due to proprietary parts.
In two tier, flexibility, growth and user independence is better compared to one tier. The applications are very easy to write. It has convenient graphic user interface. However is has some disadvantages. It is not scalable, because each client requires its own database session, and it has high bandwidth requirements.
Three tier provides the advantages of flexibility, user independence and availability. However they lack in security, manageability and control.
Multiple tier has various advantages. It is most scalable because the processing load is distributed among multiple server nodes. This improves the overall system’s performance. The disadvantages are that business application has to be web enabled. The greater amount of network traffic puts more load on the network. It is more complicated to administer.

Poonam: Are there any complexities in the system?

Me: There are different departments (sales, finance, HR) in the same enterprise; the multiple applications have different data and their own individual requirements. On top of that, these applications could be from different vendors and could be based on different technology platforms. Thus there are complications of data redundancy, inconsistency and even safety. However the complexities can be resolved through an integrated database system. By using the integrated database system, the programs working across platforms can interact transparently and effectively. It makes content available across multiple applications. Thus there will be no duplication or inconsistency of data. On top of it, ERP could be implemented. Multiple vendors can create multiple problems; therefore ERP can really be beneficial for the organisation. The key ingredient for ERP is the use of a unified database to store data for the various systems modules, it breaks sailos. There can also be some specific software for special requirements. We can even make data, web enabled using internet but for that we need to use firewall to protect from intruders.

Poonam: Thank you so much. I understand the concept of systems architecture much better now.

Me: I too enjoyed the conversation.