three-tier system | contains a server which communicates with both a client (usually through the Internet) and with a database (usually within an intranet, for security reasons) and which acts as a client when accessing the database server | ![2001-08-30 14:58:02.0](facet.gif) |
is a subtopic of 9.5 - Architectural Patterns | ![2001-08-30 14:58:02.0](facet.gif) |
is a kind of client-server system | ![2001-08-30 14:58:02.0](facet.gif) |
uses three-tier model of client-server architecture | ![2001-08-30 14:58:02.0](facet.gif) |
client-server system | has interaction - The server starts running
- The server listens for clients wanting to connect
- Clients start running and perform various operations, some of which require connecting to the server to request a service
- When a client attempts to connect, the server accepts the connection if it is willing
- The server waits for messages to arrive from connected clients
- When a message from a client arrives, the server takes some action in response, such as sending a message back to the client, then resumes waiting
- Clients and servers continue functioning in this manner until one of them decides to shut down
| ![2001-08-30 14:54:53.0](facet.gif) |
has problem developers of clients are frequently forced to upgrade their clients whenever the server is changed if clients and servers are developed by different organizations | ![2001-08-30 14:54:54.0](facet.gif) |
involves at least one server and one client | ![2001-08-30 14:54:54.0](facet.gif) |
is inherently concurrent because the server runs concurrently with the clients, normally (but not necessarily) on different computers | ![2001-08-30 14:54:54.0](facet.gif) |
is prone to security violations, due to the fact that information is transmitted over a network | ![2001-08-30 14:54:54.0](facet.gif) |
is vulnerable to interruptions in communication or denial-of-service attacks | ![2001-08-30 14:54:54.0](facet.gif) |
should be forward-compatible and backward-compatible with other versions of clients and servers by designing the client-server protocols to be very general and flexible | ![2001-08-30 14:54:54.0](facet.gif) |
should incorporate encryption, firewalls and similar methods of ensuring security | ![2001-08-30 14:54:54.0](facet.gif) |
distributed system | is divided up into clients and servers | ![2001-08-30 14:55:20.0](facet.gif) |
system | can have specification which is then implemented by a collection of components | ![2001-08-30 14:57:52.0](facet.gif) |
exists even if its components change over the course of time, or are replaced by equivalent components | ![2001-08-30 14:57:52.0](facet.gif) |
has scope | ![2001-08-30 14:57:52.0](facet.gif) |
has part component | ![2001-08-30 14:57:52.0](facet.gif) |
has part hardware | ![2001-08-30 14:57:52.0](facet.gif) |
has part module | ![2001-08-30 14:57:52.0](facet.gif) |
has part software | ![2001-08-30 14:57:52.0](facet.gif) |
has part subsystem | ![2001-08-30 14:57:52.0](facet.gif) |