Wednesday, December 5, 2007

High Level Architecture

High level architecture overview for TicketMasala.com

This document covers the various key components required for building ticketmasala portal. It describes the role of each component and gives technical details about the same.

Web Tier: It is the face of entire application. All the web pages that show the various features of portal are present here. Web tier will be built using ASP.NET 2.0 using Microsoft Visual Studio 2005 or Microsoft Visual Studio 2008. If any IDE is not purchased then I would suggest going with Visual Studio 2008. C# being the most popular choice among developers would be the language in which both web tier and app tier will be coded.

All communication between web and app tier needs to happen using Windows Communication Foundation which is part of .net framework 3.0. Here are a few of various options available.

1) BasicHttpBinding: Uses http protocol and XML for communication

2) Nettcpbinding: Users tcp protocol and binary for communication

A decision on what to use can be made depending upon performance requirements.

App Tier (Middle Tier): This is core of the entire system. It is responsible for all the communication between web tier and database tier or web tier and external (third party) system. In addition it is also responsible to process requests in a transaction based model.

App tier will be developed using the same IDE as web tier and .net framework 3.0. It will contain .net assemblies that will handle the data transfer between web tier and third party systems/database tier. ADO.NET will be used to develop classes that will deal with communicating with database.

Microsoft enterprise library blocks can be used all over the web tier and app tier. It will contain Data Application block, Exception Handling application block and Logging Application block. All application blocks are configuration driven and extremely simple to use. Another great reason to use them is the cut in development time.

Database Tier: All the data related to entire application resides in this tier. Data mining and reporting will be built on top of this. SQL Server 2005 will be used as database because of its rich features such as CLR stored procedures, notification services and most importantly reporting services. Data related to ticketing and masala will be hosted here.

Hardware: Depeding on traffic web tier/App tier /database tiers can have one or more servers. Windows server 2003 will be the obvious pick for operating system. If we are using multiple servers in web and app tiers, we will need a load balancer between them for efficient usage of all the servers.

Having a load balancer will also help in rotating servers when new version of software is installed or if a server is down for unknown reasons. All tiers will have a failover server as a backup in case of unknown crashes.

No comments: