Difference between revisions of "Multi-tier"

From EHS Help
Jump to: navigation, search
(First draft)
 
(Complete Rewrite)
Line 1: Line 1:
'''Overview'''
+
{{ProductTopic|Technical|Glossary}}
  
Multi-tier software is so called because it is divided into "layers" or tiers. Each of the layers has a distinct responsibility, and the usual layers are:
 
<ul>
 
<li>Data Storage (a.k.a "database"</li>
 
<li>Application business rules & data mapping (a.k.a. "application server"</li>
 
<li>User interface application (a.k.a client application)</li>
 
</ul>
 
  
Good software will differentiate these layers within the application anyway, but a true multi-tier software application will be able to physically differentiate these layers. This means that the database, application server and user interface application can reside on different computers.  
+
[[Multi-tier Architecture]], or n-tier architecture is a client-server architecture where the the function of the system is separated into multiple applications or tiers. This allows each tier to serve a specialised purpose.
  
[[AquilaCRS]], and other products by [[Evolution Healthcare Systems]], are designed as multi-tier systems and can operate with all layers on a single PC (for temporary offline usage for example) or across the Internet or N3 networks.
+
==Types of Tiers==
  
'''Benefits of Multi-Tier Software'''
+
A tier is a physically separate layer of a larger system.  Most tiers typically fall into one of three types. 
  
The benefits of a multi-tier solution can only truly be realised if the solution is written to be as efficient as possible. The main benefits are speed, security and availability.  
+
* '''Presentation''': the end-user client application, either a web page or standard executable.  This is the tier the user interacts with.
 +
* '''Business/Middle-Tier''': a layer in which objects (usually running into non-visual containers) perform validation and enforce business logic. 
 +
* '''Data Storage''': usually represented by a database.
  
[[Evolution Healthcare Systems]] are written so that the communications between the client application and the application server are as efficient as possible.  This means using compressed binary data to minimise bandwidth. The net effect is a fast and responsive user experience.
+
The relationship of these tiers is that the presentation tier communicates with the business tier, which in turn communicates with the data tier.  A multi-tier system is a system that has at least three different types of tiers - because of this they are frequently referred to as a three-tier system.  This distinguishes them from a two-tier or traditional client server system where the client application communicates directly to the database.
  
Increased security over traditional database systems comes from several areas. Firstly, in a multi-tier environment the database is not directly accessed by the client software and this prevents the opportunity for databases to be hacked. Secondly, as the over-the-wire communications are between the client application and the application server, we can encrypt the communications.  In our case all end-to-end communications are AES-256 encrypted to prevent packet sniffing and other unauthorised data access.
+
Also, since the addition of the business or middle-tier is the major differentiator over traditional client server the architecture may be referred to as a middle-tier system.  This layer usually handles the logic, the security, and abstracts away the underlying database(s).
  
Finally our multi-tier solutions are highly available as we can implement a feature that allows the use of multiple application servers which gives a high level of fail over safetyEach client will have a choice of servers to access and should one become unavailable the next server can be selected.
+
Where the multi-tier system shines is when there are multiples of each tier. 
 +
 
 +
* '''Presentation''': specialized in form factor: mobile, web, rich client; or specialized in function: front end, administration, field-use, etc.
 +
* '''Business/Middle-tier''': specialized tiers that each serve specific purposes and encapsulate specific requirements and functions: business rules, security, interoperability, scheduling, administration, reporting, etc.  Also duplicate tiers allow for redundancy and load balancing.
 +
* '''Data Storage''': the middle-tiers abstract away the data later to allow for integration of distributed or legacy databases, data sources and back end systems.   
 +
 
 +
Encapsulating as much logic and business rules as possible in the "middle" tiers makes the addition of new client presentation tiers to the system simpler as it does not require recreation of the the logic.  Maintenance costs and time are reduced as the logic and business rules only need to be maintained in one place.
 +
 
 +
[[category:text]]
 +
[[category:Technical]]

Revision as of 12:38, 14 March 2012

This is a Technical Glossary topic


Multi-tier Architecture, or n-tier architecture is a client-server architecture where the the function of the system is separated into multiple applications or tiers. This allows each tier to serve a specialised purpose.

Types of Tiers

A tier is a physically separate layer of a larger system. Most tiers typically fall into one of three types.

  • Presentation: the end-user client application, either a web page or standard executable. This is the tier the user interacts with.
  • Business/Middle-Tier: a layer in which objects (usually running into non-visual containers) perform validation and enforce business logic.
  • Data Storage: usually represented by a database.

The relationship of these tiers is that the presentation tier communicates with the business tier, which in turn communicates with the data tier. A multi-tier system is a system that has at least three different types of tiers - because of this they are frequently referred to as a three-tier system. This distinguishes them from a two-tier or traditional client server system where the client application communicates directly to the database.

Also, since the addition of the business or middle-tier is the major differentiator over traditional client server the architecture may be referred to as a middle-tier system. This layer usually handles the logic, the security, and abstracts away the underlying database(s).

Where the multi-tier system shines is when there are multiples of each tier.

  • Presentation: specialized in form factor: mobile, web, rich client; or specialized in function: front end, administration, field-use, etc.
  • Business/Middle-tier: specialized tiers that each serve specific purposes and encapsulate specific requirements and functions: business rules, security, interoperability, scheduling, administration, reporting, etc. Also duplicate tiers allow for redundancy and load balancing.
  • Data Storage: the middle-tiers abstract away the data later to allow for integration of distributed or legacy databases, data sources and back end systems.

Encapsulating as much logic and business rules as possible in the "middle" tiers makes the addition of new client presentation tiers to the system simpler as it does not require recreation of the the logic. Maintenance costs and time are reduced as the logic and business rules only need to be maintained in one place.