client-server system | | | forward-compatible and backward-compatible with other versions of clients and servers by designing the client-server protocols to be very general and flexible | - 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
| distributed system | 3.4 - The Client-Server Architecture | at least one server and one client | | | | | developers of clients are frequently forced to upgrade their clients whenever the server is changed if clients and servers are developed by different organizations | | encryption, firewalls and similar methods of ensuring security | subsystem | clients and servers | multiple threads of control that can be concurrently executed to implement concurrent operations, otherwise when the client is waiting for one kind of input, it will not be able to respond to the other kind of input | | | |
multi-layer system | well-described requirements if other systems or subsystems are going to use its services or communicate with it | flexibility right from the start | better at error handling if it effectively prevents the user from making errors, detects errors, and helps the user to correct errors | | software system | 9.5 - Architectural Patterns | | complex because it is easy to add new features and because software engineers typically add features without fully understanding a system, which may not have been originally designed to accommodate the features | evolution over its life-span | | in many ways: | | a prototype | | layer | subsystems | multi-layer architectural pattern | business process | layers with each layer communicating only with the layer immediately below it | |
communication system | well-described requirements if other systems or subsystems are going to use its services or communicate with it | flexibility right from the start | forward-compatible and backward-compatible with other versions of clients and servers by designing the client-server protocols to be very general and flexible | - 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
| multi-layer system | 9.5 - Architectural Patterns | at least one server and one client | complex because it is easy to add new features and because software engineers typically add features without fully understanding a system, which may not have been originally designed to accommodate the features | evolution over its life-span | a program that allows users to send a message or maintain a conversation with users on another computer | in many ways: | developers of clients are frequently forced to upgrade their clients whenever the server is changed if clients and servers are developed by different organizations | a prototype | encryption, firewalls and similar methods of ensuring security | layer | clients and servers | multiple threads of control that can be concurrently executed to implement concurrent operations, otherwise when the client is waiting for one kind of input, it will not be able to respond to the other kind of input | business process | layers in order from bottom to top- facilities for transmitting and receiving signals
- is a layer that deals with splitting messages into packets and reconstructing messages that are received
- a layer that deals with handling ongoing connections with a remote host
- a layer that handles various protocols used by application programs such as http
| a program that routes messages and can have features such as 'forwarding' that people are familiar with from the telephone network |