Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Multitier architecture
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Three-tier architecture== [[File:Overview of a three-tier application vectorVersion.svg|thumb|400px|Overview of a three-tier application.]] Three-tier architecture is a client-server [[Software Architecture styles and patterns|software architecture pattern]] in which the [[user interface]] (presentation), [[Business logic layer|functional process logic]] ("business rules"), [[computer data storage]] and [[data access]] are developed and maintained as independent [[modular programming|modules]], most often on separate [[computing platform|platforms]].<ref>[[Eckerson, Wayne W.]] "Three Tier Client/Server Architecture: Achieving Scalability, Performance, and Efficiency in Client Server Applications." Open Information Systems 10, 1 (January 1995): 3(20)</ref> It was developed by [[John J. Donovan]] in Open Environment Corporation (OEC), a tools company he founded in [[Cambridge, MA|Cambridge, Massachusetts]].{{citation needed|date=February 2014}}. 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 [[personal computer|PC]] or [[Workstation (computer hardware)|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 computer|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").<ref>{{FOLDOC|three-tier}}</ref> ; 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. In simple terms, 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, it 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 [[Application programming interface|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 usage=== In the [[web development]] field, three-tier is often used to refer to [[website]]s, commonly [[electronic commerce]] websites, which are built using three tiers: # A front-end [[web server]] serving static content, and potentially some [[web cache|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 Framework|Spring]], [[ASP.NET]], [[Django (web framework)|Django]], [[Ruby on Rails|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 [[Simple Network Management Protocol|SNMP]], [[CORBA]], [[Java RMI]], [[.NET Remoting]], [[Windows Communication Foundation]], [[Internet socket|sockets]], [[User Datagram Protocol|UDP]], [[web service]]s or other standard or proprietary protocols. Often [[Middleware (distributed applications)|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 (computing)|cluster]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)