Common layers In a logical multilayer architecture for an information system with an
object-oriented design, the following four are the most common: or
GRASP Controller Layer ) •
Business layer (a.k.a. business logic layer (BLL), domain logic layer) •
Data access layer (a.k.a.
persistence layer, logging, networking, and other services which are required to support a particular business layer) The more usual convention is that the application layer (or service layer) is considered a sublayer of the business layer, typically encapsulating the
application programming interface (API) definition surfacing the supported business functionality. The application/business layers can, in fact, be further subdivided to emphasize additional sublayers of distinct responsibility. For example, if the
model–view–presenter pattern is used, the presenter sublayer might be used as an additional layer between the user interface layer and the business/application layer (as represented by the model sublayer). If the application architecture has no explicit distinction between the business layer and the presentation layer (i.e., the presentation layer is considered part of the business layer), then a traditional client-server (two-tier) model has been implemented. Some also identify a separate layer called the business infrastructure layer (BI), located between the business layer(s) and the infrastructure layer(s). It is also sometimes called the "low-level business layer" or the "business services layer". This layer is very general and can be used in several application tiers (e.g. a CurrencyConverter). The infrastructure layer can be partitioned into different levels (high-level or low-level technical services).
Three-tier architecture Three-tier architecture is a client-server
software architecture pattern in which the
user interface (presentation),
functional process logic ("business rules"),
computer data storage and
data access are developed and maintained as independent
modules, most often on separate
platforms. It was developed by
John J. Donovan in Open Environment Corporation (OEC), a tools company he founded in
Cambridge, Massachusetts.. Apart from the usual advantages of modular
software with well-defined interfaces, the three-tier architecture is intended to allow any of the three tiers to be upgraded or replaced independently in response to changes in requirements or
technology. For example, a change of
operating system in the
presentation tier would only affect the user interface code. Typically, the user interface runs on a desktop
PC or
workstation and uses a standard
graphical user interface, functional process logic that may consist of one or more separate modules running on a workstation or
application server, and an
RDBMS on a
database server or
mainframe that contains the computer data storage logic. The middle tier may be multitiered itself (in which case the overall architecture is called an "
n-tier architecture"). • Presentation tier • This is the topmost level of the application. The presentation tier displays information related to such services as browsing merchandise, purchasing and shopping cart contents. It communicates with other tiers by which it puts out the results to the browser/client tier and all other tiers in the network. It is a layer that users can access directly (such as a web page, or an operating system's GUI). • Application tier (business logic, logic tier, or middle tier) • The logical tier is pulled out from the presentation tier and, as its layer, controls an application’s functionality by performing detailed processing. • Data tier • The data tier includes the data persistence mechanisms (database servers, file shares, etc.) and the data access layer that encapsulates the persistence mechanisms and exposes the data. The data access layer should provide an
API to the application tier that exposes methods of managing the stored data without exposing or creating dependencies on the data storage mechanisms. Avoiding dependencies on the storage mechanisms allows for updates or changes without the application tier clients being affected by or even aware of the change. As with the separation of any tier, there are costs for implementation and often costs to performance in exchange for improved scalability and maintainability.
Web development In the
web development field, three-tier is often used to refer to
websites, commonly
electronic commerce websites, which are built using three tiers: • A front-end
web server serving static content, and potentially some
cached dynamic content. In web-based application, front end is the content rendered by the browser. The content may be static or generated dynamically. • A middle dynamic content processing and generation level
application server (e.g.,
Symfony,
Spring,
ASP.NET,
Django,
Rails,
Node.js). • A back-end
database or
data store, comprising both data sets and the
database management system software that manages and provides access to the data.
Other considerations Data transfer between tiers is part of the architecture. Protocols involved may include one or more of
SNMP,
CORBA,
Java RMI,
.NET Remoting,
Windows Communication Foundation,
sockets,
UDP,
web services or other standard or proprietary protocols. Often
middleware is used to connect the separate tiers. Separate tiers often (but not necessarily) run on separate physical servers, and each tier may itself run on a
cluster. ==Traceability==