28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
Published byModified over 4 years ago
Presentation on theme: "28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities."— Presentation transcript:
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities of the underlying internet. (ie: Sending or receiving e-mail, transferring files, browsing information archives) Applications determine the format in which information is displayed and the mechanisms utilized to select and access information. (ie: Application software defines names for computers, i/o devices such as printers, and abstract items such as files). Application software handles the details of translating symbolic names into equivalent number values automatically.
28.3 Functionality an Internet Provides An internet is like a telephone system in two significant ways. First, although it provides the ability to communicate, the internet does not specify which computers interact or what those computers do with the communication service. Second, the network hardware and associated protocol software do not know when to initiate contact with or when to accept an incoming communication from a remote computer.
28.3 Functionality an Internet Provides “Although an internet system provides a basic communication service, the protocol software cannot initiate contact with, or accept contact from, a remote computer. Instead two application programs must participate in any communication: one application initiates communication and the other accepts it.”
28.4 Making Contact The application informs local protocol software that a specific type of message is expected, and then the application waits. When an incoming message matches what the application has specified, protocol software passes the message to the application.
28.5 The Client - Server Paradigm A server application waits passively for contact, while a client application initiates communication actively.
28.6 Characteristics of Clients and Severs Client Software: Is an arbitrary application program that becomes a client temporarily when remote access is needed, but also performs other computation locally. Is invoked directly by a user, and executes only for one session. Runs locally on a user’s computer. Actively initiates contact with a server. Can access multiple servers as needed, but actively contacts one remote server at a time. Does not require special hardware or a sophisticated operating system.
28.6 Characteristics of Clients and Severs Server Software: Is a special-purpose, privileged program dedicated to providing one service, but can handle multiple remote clients at the same time. Is invoked automatically when a system boots, and continues to execute through many sessions. Runs on a shared computer. Waits passively for contact from arbitrary remote clients. Accepts contact from arbitrary clients, but offers a single service. Requires powerful hardware and a sophisticated operating system.
28.7 Server Programs and Server- Class Computers Formally the term server refers to a program that waits passively for communication, and not to the computer on which it executes.
28.8 Requests, Response, and Direction of Data Flow Information can flow in either or both directions between a client and server. Although many services arrange for the client to send one or more requests and the server to return responses, other interactions are possible.
28.9 Transport Protocols and Client-Server Interaction A client and server each interact with a protocol in the transport layer. (See figure 28.1)
28.10 Multiple Services on One Computer A single, server-class computer can offer multiple services at the same time; a separate server program is needed for each service. Running many servers on a single computer is practical because a server does not consume computational resources while waiting for a request. (See figure 28.2)
28.11 Identifying a Particular Service Transport protocols assign each service a unique identifier. Both Clients and servers specify the service identifier; protocol software uses the identifier to direct each incoming request to the correct server.
28.12 Multiple Copies of a Server for a Single Service A computer system that permits multiple application programs to execute at the same time is said to support concurrency, and a program that has more than one thread of control is called a concurrent program. Concurrency is fundamental to the client-server model of interaction because a concurrent server offers service to multiple clients at the same time, without requiring each client to wait for previous clients to finish.
28.13 Dynamic Server Creation Concurrent execution is fundamental to servers because concurrency permits multiple clients to obtain a given service without having to wait for the server to finish previous requests. In a concurrent server, the main server thread creates a new service thread to handle each client.
28.14 Transport Protocols and Unambiguous Communication Transport protocols assign an identifier to each client as well as to each service. Protocol software on the server’s machine uses the combination of client and server identifiers to choose the correct copy of a concurrent server.
28.15 Connection-Oriented and Connectionless Transport Clients and servers can use either connection-oriented or connectionless transport protocols to communicate. When using a connection-oriented transport, a client first forms a connection to a specific server. The connection then stays in place while the client sends requests and receives responses. When it finishes using the service, the client closes the connection.
28.15 Connection-Oriented and Connectionless Transport Clients and servers that use connectionless protocols exchange individual messages. For example, many services that use connectionless transport require a client to send each request, and the server to return each response, in a single message.
28.16 A Service Reachable Through Multiple Protocols There are two implementations of a multiprotocol server. The first implementation is simply that two servers exist for the same service. One uses connectionless transport, while the other use connection-oriented transport. The second implementation is more complex: a single server program interacts with two or more transport protocols at the same time. The server accepts requests that arrive from either protocol, and uses the protocol in which the request arrived when sending a response.
28.17 Complex Client-Server Interactions A client application is not restricted to accessing to a single service. An application can first become a client of one service, and then become a client of another. The client contacts a different server for each server, possibly on a different computer.
28.17 Complex Client-Server Interactions A client application is not restricted to accessing a single server for a give service. In some services, each server provides different information than servers running on other computers. For example, a date server might provide the current time and date for the computer on which it runs. A server on a computer in a different time zone gives a different answer. In other services, all servers provide the same information. In such cases, a client might send a request to multiple servers to improve performance.
28.17 Complex Client-Server Interactions A server is not restricted from performing further client-server interactions – a server for one service can become a client of another. For example, a file server that needs to record the time that a file was accessed might become a client of a time server.
28.18 Interactions and Circular Dependencies A circular dependency can result if the time server also uses the file server. For example, suppose a programmer is asked to modify the time server so it keeps a record of each request. If the programmer chooses to have the time server become a client to the file server, a cycle can result: the file server become a client of the time server which becomes a client of the file server, and so on. The result is a disaster analogous to an infinite loop in a program.