Multi-tier Architecture
From RemObjects Wiki
This is a Technical Glossary topic
Feel free to add your notes to this topic below.
Multi-tier Architecture, or n-tier architecture is a client-server architecture where the the function of the system are separated into multiple applications or tiers. This allows each tier to serve a specialized purpose in the larger complex system. Through the use and reuse of these specialized tiers, each tier is simpler to maintain and large complex systems are easier to develop and expand.
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). Data Abstract provides this functionality. RemObjects SDK is the remoting framework that powers Data Abstract.
Where the multi-tier system shines is when there are multiples of each tier.
- Presentation: specialized in form factor: mobile, web, rich client, etc.; or specialized in function: front end, back end, field, administration, 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.
For more information see the articles on Data Abstract.
Remote Invocation
When the logic is removed from the client application and placed in one or more middle-tiers, it becomes necessary for the client application to remotely invoke functions in that middle-tier, and the two to exchange data. This is accomplished via a messaging protocol.
RemObjects SDK is a remoting framework that provides remote invocation and messaging across multiple platforms.