Thursday, March 28, 2013

3-tier to N-tier Client/Server Architecture


As mentioned in the previous posts, middle tier in 3-tier applications is not a monolithic program but a set of components driven by client-initiated business logic. The components work in a union to respond to a client request whereby calling each component based functions accordingly. Also some may operate as gateways to encapsulate legacy applications processing on mainframes. Basically n-tier methodology can be considered as a further expansion of the 3-tier model (Client/Server Architectures,2011).

Below are some advantages of component-based applications over monolithic applications.

1.      Applications can be built in a procedural manner/step by step implementation. Projects based on mission-critical applications are often implemented in a procedural manner dividing into small-scale projects which undergoes an incremental development. 

2.     Reuse of components. 

3.     Clients are eligible of accessing functions simply and securely.The client is unaware of the database, application or the particular component, by which the request being executed as the components work in union on behalf of the client. The server then encapsulates the data provided by the application logic thus raising the abstraction level.

4.      In-corporation between custom applications and off-the-shelf components.


Nowadays there’s a higher demand for ready-made components that are packaged as applications consisting the ability to “Mix-and-Match” with different software models even though it necessitates semantic glue. .

Communication among the functional components as storage, management of clients and the gathering of data is achieved by protocols as HTTP, RMI, and XML (Client/Server Architectures,2011). 

Moreover the componentization of the tiers is considered as the key aspect for increased efficiency.(Sun MicroSystems Inc, 2011) Accordingly the business tier can be further elaborated in two sub layers referred as BLL-business Logic Layer and DAL-Data Access Layer. The BLL is placed on top of DAL, enabling it to use the classes and objects of DAL which is responsible of retrieving data and passing it to the top level.e.g- ASP.NET’s DAL uses SqlClient or OleDb to retrieve data and passing it forward as Dataset or DataReader. Then BLL processes the data and forward it to the presentation tier. (ASKESIS 2010)
In the scenario of Visual Studio based applications, following are the components used in each level.

Usually n-tier architectural platforms have distributed the workload to different servers in order to separate the components into scalable aspects referred to as horizontal, vertical, diagonal scaling.

  • Horizontal Scaling- known as simplified change management with multiple servers in the horizontal tier where the changes can be deployed incrementally by adding more nodes to the system. Hardware/Software error reductions can be gained through the horizontal set of servers as it provides service even if a particular server breakdowns thereby providing a predictable performance. Also the workload is distributed among the servers with the use of load.( Sun Microsystems, Inc, 2011)

  • Vertical Scaling- in order to improve scalability, services are added within the system to a single node e.g-CPU’s, memory. Suitable for slowly changing/data-intensive applications as mail stores and directories etc. this also paves the way to use virtualization technology due to enhanced resource sharing ( Sun Microsystems, Inc, 2011). 

  • Diagonal Scaling- this is basically a combination of horizontal and vertical scaling enabling the horizontally set servers to develop within the system considered as a flexible approach ( Sun Microsystems, Inc, 2011). 


When can you use n-tier?

In relevant to Gartner Group’s specification for smaller projects, 2-tier architecture is easier to implement than 3-tier, avoiding the complex situations where even 2-tier is exponentially harder to develop. Following are the circumstances driving an organization for the implementation of 3-tier model (Client/Server Architectures,2011). 

1.     Numerous applications services/classes. 
2.     Ongoing application developed in multiple languages or entitled to different organizations. 
3.     Usage of an application more than 3 years.
4.     Higher demand for accessing the database; more than 50,000 transactions per day or more than 300 concurrent users. 
5.     Multiple heterogeneous data sources; DBMS and a file system. 

Shopping cart web applications can be considered as a good example for n-tier client/server paradigm. Clients communicate with the application server through GUI’s, basically the web browser which initiates the web-requests thereby displaying the code in dynamic HTML (Hypertext Markup Language). Thus the presentation tier is responsible for displaying information on the products browsed, purchase details and the contents of the shopping cart. This communicates with other tiers as the browser/client tier via the display of products with the help of database stored procedures and web services. This allows different nodes to communicate (Exforsys Inc, 2011). 

The business tier performs detailed processing of all business transactions involved. e.g- credit card authorization and calculation of shipping costs and sales tax. Web services, custom tags, and stored procedures are used as tools used to encapsulate the business logic (Exforsys Inc, 2011).

Intergalactic Client/Server

The client/server applications stand at a new threshold brought on by the exponential increase of low-cost bandwidth on Wide Area Network for example, the Internet and AOL.

The client/server paradigm undergoes a new facet brought on by the effective increase of low-cost bandwidth on Wide Area Networks, e.g- Internet and AOL. The use of web-enabled machines and devices marks a transition from 2-tier Ethernet client/server to N-tier intergalactic client/server.

Moreover the client/server does not necessarily reside on the same location enabling for remote access referred to as the “Irrelevance of proximity”. 

Bibliography

·         slideshare. (2011). Client Server Architecture. [Online]. Available from: http://www.slideshare.net/suks_87/client-server-architecture-presentation. [Accessed: 20th January 2011]


·         ASKESIS. (2004). Client server computing. [Online].Available from: http://www.askesis.nl/en/tutorial/docs/J2EE/body.html. [Accessed: 25th January 2011]


·         Sun Microsystems, Inc. (2000).Scaling the N-Tier Archirecture. [Online]. September 2000. Available from: w.sun.com/software/whitepapers/wp-ntier/wp-ntier.pdf. [Accessed: 25th January 2011]


·         Exforsys Inc. (2011). N-Tier Client-Server Architecture. [Online].Available from: http://www.exforsys.com/tutorials/client-server/n-tier-client-server-architecture.html. [Accessed: 28th January 2011]

No comments:

Post a Comment