![]() |
subject > pattern > software architecture > distributed architecture > client-server architecture > three-tier model of client-server architecture |
![]() ![]() | ||||
three-tier model of client-server architecture | ||||
subject | fact |
three-tier model of client-server architecture | has definition A model in which a server communicates with both a client (usually through the Internet) and with a database (usually within an intranet, for security reasons) | ![]() |
is a subtopic of 9.5 - Architectural Patterns | ![]() | |
is used to design three-tier systems | ![]() | |
is a kind of client-server architecture | ![]() | |
client-server architecture | has advantages
| ![]() |
has alternatives | ![]() | |
is one of the most widely used ways of structuring software systems | ![]() | |
distributed architecture | facilitates designing for flexibility because distributed systems can often be easily reconfigured by adding extra servers or clients and clients and servers can be developed by competing organizations, giving the customer a choice | ![]() |
facilitates divide and conquer since dividing the system into processes is a very strong way to divide the system up | ![]() | |
increases abstraction because separate distributed components are often good abstractions | ![]() | |
increases reuse because it is often possible to find suitable frameworks on which to build good distributed systems | ![]() | |
reduces coupling since there is usually only one communication channel between distributed components although you have to watch out for control coupling | ![]() | |
software architecture | constrains the overall efficiency, reusability and maintainability of the system | ![]() |
is decided early in the design process, although it will continue to mature as iterative development proceeds | ![]() | |
must be understood by software engineers | ![]() | |
see also software architecture^2 | ![]() | |
see also software architecture^3 | ![]() | |
pattern | should be described in an easy-to-understand form so that people can determine when and how to use it | ![]() |
should contain a solution that has been proven to effectively solve the problem in the indicated context | ![]() |
Next client-server architecture: peer-to-peer Up: client-server architecture