You are on page 1of 16

CHAPTER 4 CLIENT/SERVER TECHNOLOGY

Module in DBMS 49 Prepared by: For-Ian V. Sandoval

CLIENT-SERVER
Client-server computing or networking is a distributed application architecture that partitions tasks or work loads between service providers (servers) and service requesters, called clients. Often clients and servers operate over a computer network on separate hardware. A server is a high-performance host that is a registering unit and shares its resources with clients. A client does not share any of its resources, but requests a server's content or service function. Clients therefore initiate communication sessions with servers which await (listen to) incoming requests. Client-server describes the relationship between two computer programs in which one program, the client program, makes a service request to another, the server program. Standard networked functions such as email exchange, web access and database access, are based on the client-server model. For example, a web browser is a client program at the user computer that may access information at any web server in the world. To check your bank account from your computer, a web browser client program in your computer forwards your request to a web server program at the bank. That program may in turn forward the request to its own database client program that sends a request to a database server at another bank computer to retrieve your account balance. The balance is returned to the bank database client, which in turn serves it back to the web browser client in your personal computer, which displays the information for you. The client-server model has become one of the central ideas of network computing. Many business applications being written today use the client-server model. So do the Internet's main application protocols, such as HTTP, SMTP, Telnet, DNS. In marketing, the term has been used to distinguish distributed computing by smaller dispersed computers from the "monolithic" centralized computing of mainframe computers. But this distinction has largely disappeared as mainframes and their applications have also turned to the client-server model and become part of network computing. Each instance of the client software can send data requests to one or more connected servers. In turn, the servers can accept these requests, process them, and return the requested information to the client. Although this concept can be applied for a variety of reasons to many different kinds of applications, the architecture remains fundamentally the same.

Module in DBMS 50 Prepared by: For-Ian V. Sandoval The most basic type of client-server architecture employs only two types of hosts: clients and servers. This type of architecture is sometimes referred to as two-tier. It allows devices to share files and resources. The two tier architecture means that the client acts as one tier and application in combination with server acts as another tier. The interaction between client and server is often described using sequence diagrams. Sequence diagrams are standardized in the Unified Modeling Language. Specific types of clients include web browsers, email clients, and online chat clients. Specific types of servers include web servers, ftp servers, application servers, database servers, name servers, mail servers, file servers, print servers, and terminal servers. Most web services are also types of servers.

COMPARISON TO PEER-TO-PEER ARCHITECTURE


Another type of network architecture is known as peer-to-peer, because each host or instance of the program can simultaneously act as both a client and a server, and because each has equivalent responsibilities and status. Peer-to-peer architectures are often abbreviated by P2P. Both client-server and P2P architectures are in wide usage today. Details may be found in Comparison of Centralized (Client-Server) and Decentralized (Peer-to-Peer) Networking.

COMPARISON ARCHITECTURE

TO

CLIENT-QUEUE-CLIENT

While classic client-server architecture requires one of the communication endpoints to act as a server, which is much harder to implement, Client-Queue-Client allows all endpoints to be simple clients, while the server consists of some external software, which also acts as passive queue (one software instance passes its query to another instance to queue, e.g. database, and then this other instance pulls it from database, makes a response, passes it to database etc.). This architecture allows greatly simplified software implementation. Peer-topeer architecture was originally based on Client-Queue-Client concept.

ADVANTAGES

Module in DBMS 51 Prepared by: For-Ian V. Sandoval 1. In most cases, a client-server architecture enables the roles and responsibilities of a computing system to be distributed among several independent computers that are known to each other only through a network. This creates an additional advantage to this architecture: greater ease of maintenance. For example, it is possible to replace, repair, upgrade, or even relocate a server while its clients remain both unaware and unaffected by that change. 2. All the data is stored on the servers, which generally have far greater security controls than most clients. Servers can better control access and resources, to guarantee that only those clients with the appropriate permissions may access and change data. 3. Since data storage is centralized, updates to that data are far easier to administer than what would be possible under a P2P paradigm. Under a P2P architecture, data updates may need to be distributed and applied to each peer in the network, which is both time-consuming and error-prone, as there can be thousands or even millions of peers. 4. Many mature client-server technologies are already available which were designed to ensure security, friendliness of the user interface, and ease of use. 5. It functions with multiple different clients of different capabilities.

DISADVANTAGES
1. Traffic congestion on the network has been an issue since the inception of the client-server paradigm. As the number of simultaneous client requests to a given server increases, the server can become overloaded. Contrast that to a P2P network, where its aggregated bandwidth actually increases as nodes are added, since the P2P network's overall bandwidth can be roughly computed as the sum of the bandwidths of every node in that network. 2. The client-server paradigm lacks the robustness of a good P2P network. Under client-server, should a critical server fail, clients requests cannot be fulfilled. In P2P networks, resources are usually distributed among many nodes. Even if one or more nodes depart and abandon a downloading file, for example, the remaining nodes should still have the data needed to complete the download

OSI MODEL
Computer networks can be classified into two broad categories: Local Area Network (LAN) and Wide Area Networks (WAN).

Module in DBMS 52 Prepared by: For-Ian V. Sandoval A LAN is a communications network enables data exchange between devices within a small geographic area. Here, devices mostly refer to computers and peripheral devices such as printer. A WAN usually consists of a local connection of LANs and spreads over a much larger geographical area, sometimes even spanning the globe. The Open Systems Interconnection Reference Model (OSI Reference Model or OSI Model) is an abstract description for layered communications and computer network protocol design. It was developed as part of the Open Systems Interconnection (OSI) initiative. In its most basic form, it divides network architecture into seven layers which, from top to bottom, are the Application, Presentation, Session, Transport, Network, Data-Link, and Physical Layers. It is therefore often referred to as the OSI Seven Layer Model. A layer is a collection of conceptually similar functions that provide services to the layer above it and receives service from the layer below it. On each layer an instance provides services to the instances at the layer above and requests service from the layer below. For example, a layer that provides error-free communications across a network provides the path needed by applications above it, while it calls the next lower layer to send and receive packets that make up the contents of the path. Conceptionally two instances at one layer are connected by a horizontal protocol connection on that layer.

Module in DBMS 53 Prepared by: For-Ian V. Sandoval

HISTORY OF OSI MODEL


In 1977, work on a layered model of network architecture was started and the International Organization for Standardization (ISO) began to develop its OSI framework architecture. OSI has two major components: an abstract model of networking, called the Basic Reference Model or seven-layer model, and a set of specific protocols. The standard documents that describe the OSI model can be freely downloaded from the ITU-T as the X.200-series of recommendations. A number of the protocol specifications are also available as part of the ITU-T X series. The equivalent ISO and ISO/IEC standards for the OSI model are available from the ISO, but only some of the ISO/IEC standards are available as cost-free downloads. All aspects of OSI design evolved from experiences with the CYCLADES network, which also influenced Internet design. The new design was documented in ISO 7498 and its various addenda. In this model, a networking system is divided into layers. Within each layer, one or more entities implement its functionality. Each entity interacts directly only with the layer immediately beneath it, and provides facilities for use by Figure 4.1 - The OSI Model the layer above it. Protocols enable an entity in one host to interact with a corresponding entity at the same layer in another host. Service definitions abstractly describe the functionality provided to an (N)-layer by an (N-1) layer, where N is one of the seven layers of protocols operating in the local host.

Module in DBMS 54 Prepared by: For-Ian V. Sandoval

DESCRIPTION OF OSI LAYERS


Layer 1: Physical Layer The Physical Layer is the first and lowest layer in the seven-layer OSI model of computer networking. The Physical Layer comprises the basic hardware transmission technologies of a network. It is a fundamental layer underlying the logical data structures of the higher level functions in a network. Due to the plethora of available hardware technologies with widely varying characteristics, this is perhaps the most complex layer in the OSI architecture. The implementation of this layer is often termed PHY. The Physical Layer defines the means of transmitting raw bits rather than logical data packets over a physical link connecting network nodes. The bit stream may be grouped into code words or symbols and converted to a physical signal that is transmitted over a hardware transmission medium. The Physical Layer provides an electrical, mechanical, and procedural interface to the transmission medium. The shapes and properties of the electrical connectors, the frequencies to broadcast on, the modulation scheme to use and similar low-level parameters, are specified here. Within the semantics of the OSI network architecture, the Physical Layer translates logical communications requests from the Data Link Layer into hardware-specific operations to effect transmission or reception of electronic signals. This layer consists of four major components involved in the processing signals: 1. Transmission format, which can be either digital or analog. 2. Physical transmission medium, which refers to whether bits of data are transmitted as electrical or optical signals. 3. Data encoding, which emphasizes what signal patterns represent ones and zeroes and the synchronization between sending and receiving devices. 4. Physical medium attachment, which deals with wiring and pin layouts connectors.

Module in DBMS 55 Prepared by: For-Ian V. Sandoval Physical Layer examples: 1. V.92 telephone network modems 2. IRDA Physical Layer 3. USB Physical Layer 4. Firewire 5. EIA RS-232, EIA-422, EIA-423, RS-449, RS-485 6. ITU Recommendations: see ITU-T 7. DSL 8. ISDN 9. T1 and other T-carrier links, and E1 and other E-carrier links 10. 10BASE-T, 10BASE2, 10BASE5, 100BASE-TX, 100BASE-FX, 100BASE-T, 1000BASE-T, 1000BASE-SX and other varieties of the Ethernet physical layer 11. Varieties of 802.11 12. SONET/SDH 13. GSM Um radio interface physical layer 14. Bluetooth Physical Layer 15. IEEE 802.11x Wi-Fi Physical Layers 16. TransferJet Physical Layer 17. Etherloop 18. ARINC 818 Avionics Digital Video Bus 19. G.hn/G.9960 Physical Layer Layer 2: Data Link Layer Networks transfer data in chunks or packets, of a certain size. The data link layer forms data packets, manages their movement at each node in the network, and adds the appropriate addresses of the source and destination nodes. In PC-based LANs, it is at this layer that protocols like Token Ring and Ethernet are implemented. These functions are often performed by network interface cards (NICs) installed in computers. Layer 3: Network Layer The Network Layer provides the functional and procedural means of transferring variable length data sequences from a source to a destination via one or more networks, while maintaining the quality of service requested by the Transport Layer. The Network Layer performs network routing functions, and might also perform fragmentation and reassembly, and report delivery errors. Routers operate at this layer sending data throughout the extended network and making the Internet possible. This is a logical addressing scheme values are chosen by the network engineer. The addressing scheme is hierarchical.

Module in DBMS 56 Prepared by: For-Ian V. Sandoval The best-known example of a Layer 3 protocol is the Internet Protocol (IP). It manages the connectionless transfer of data one hop at a time, from end system to ingress router, router to router, and from egress router to destination end system. It is not responsible for reliable delivery to a next hop, but only for the detection of errored packets so they may be discarded. When the medium of the next hop cannot accept a packet in its current length, IP is responsible for fragmenting the packet into sufficiently small packets that the medium can accept. A number of layer management protocols, a function defined in the Management Annex, ISO 7498/4, belong to the Network Layer. These include routing protocols, multicast group management, Network Layer information and error, and Network Layer address assignment. It is the function of the payload that makes these belong to the Network Layer, not the protocol that carries them. Layer 4: Transport Layer The Transport Layer provides transparent transfer of data between end users, providing reliable data transfer services to the upper layers. The Transport Layer controls the reliability of a given link through flow control, segmentation/desegmentation, and error control. Some protocols are state and connection oriented. This means that the Transport Layer can keep track of the segments and retransmit those that fail. Although not developed under the OSI Reference Model and not strictly conforming to the OSI definition of the Transport Layer, typical examples of Layer 4 are the Transmission Control Protocol (TCP) and User Datagram Protocol (UDP). Of the actual OSI protocols, there are five classes of connection-mode transport protocols ranging from class 0 (which is also known as TP0 and provides the least error recovery) to class 4 (TP4, designed for less reliable networks, similar to the Internet). Class 0 contains no error recovery, and was designed for use on network layers that provide errorfree connections. Class 4 is closest to TCP, although TCP contains functions, such as the graceful close, which OSI assigns to the Session Layer. Also, all OSI TP connection-mode protocol classes provide expedited data and preservation of record boundaries, both of which TCP is incapable. Table 4.1 - Detailed characteristics of TP0-4 classes are shown in the following table:

Module in DBMS 57 Prepared by: For-Ian V. Sandoval

Perhaps an easy way to visualize the Transport Layer is to compare it with a Post Office, which deals with the dispatch and classification of mail and parcels sent. Do remember, however, that a post office manages the outer envelope of mail. Higher layers may have the equivalent of double envelopes, such as cryptographic presentation services that can be read by the addressee only. Roughly speaking, tunneling protocols operate at the Transport Layer, such as carrying non-IP protocols such as IBM's SNA or Novell's IPX over an IP network, or end-to-end encryption with IPsec. While Generic Routing Encapsulation (GRE) might seem to be a Network Layer protocol, if the encapsulation of the payload takes place only at endpoint, GRE becomes closer to a transport protocol that uses IP headers but contains complete frames or packets to deliver to an endpoint. L2TP carries PPP frames inside transport packet. Layer 5: Session Layer The Session Layer is Layer 5 of the seven-layer OSI model of computer networking. The Session Layer provides the mechanism for opening, closing and managing a session between end-user application processes, i.e. a semipermanent dialogue. Communication sessions consist of requests and responses that occur between applications. Session Layer services are commonly used in application environments that make use of remote procedure calls (RPCs). The Session Layer controls the dialogues (connections) between computers. It establishes, manages and terminates the connections between the local and remote application. It provides for full-duplex,

Module in DBMS 58 Prepared by: For-Ian V. Sandoval half-duplex, or simplex operation, and establishes checkpointing, adjournment, termination, and restart procedures. The OSI model made this layer responsible for graceful close of sessions, which is a property of the Transmission Control Protocol, and also for session checkpointing and recovery, which is not usually used in the Internet Protocol Suite. The Session Layer is commonly implemented explicitly in application environments that use remote procedure calls. An example of a Session Layer protocol is the OSI protocol suite Session Layer Protocol, also known as X.225 or ISO 8327. In case of a connection loss this protocol may try to recover the connection. If a connection is not used for a long period, the Session Layer Protocol may close it and re-open it. It provides for either full duplex or half-duplex operation and provides synchronization points in the stream of exchanged messages. Other examples of Session Layer implementations include Zone Information Protocol (ZIP) the AppleTalk protocol that coordinates the name binding process, and Session Control Protocol (SCP) the DECnet Phase IV Session Layer protocol. Within the service layering semantics of the OSI network architecture, the Session Layer responds to service requests from the Presentation Layer and issues service requests to the Transport Layer.

Layer 6: Presentation Layer


The Presentation Layer is Layer 6 of the seven-layer OSI model of computer networking. The Presentation Layer is responsible for the delivery and formatting of information to the application layer for further processing or display. It relieves the application layer of concern regarding syntactical differences in data representation within the end-user systems. Note: An example of a presentation service would be the conversion of an EBCDIC-coded text file to an ASCII-coded file. The Presentation Layer is the lowest layer at which application programmers consider data structure and presentation, instead of simply sending data in form of datagrams or packets between hosts. This layer deals with issues of string representation - whether they use the Pascal method (an integer length field followed by the specified amount of bytes) or the C/C++ method (null-terminated strings, i.e. "thisisastring\0"). The idea is that the application layer should be able to point at the data to be moved, and the Presentation Layer will deal with the rest.

Module in DBMS 59 Prepared by: For-Ian V. Sandoval The Presentation Layer establishes a context between Application Layer entities, in which the higher-layer entities can use different syntax and semantics, as long as the Presentation Service understands both and the mapping between them. The presentation service data units are then encapsulated into Session Protocol Data Units, and moved down the stack. This layer provides independence from differences in data representation (e.g., encryption) by translating from application to network format, and vice versa. The presentation layer works to transform data into the form that the application layer can accept. This layer formats and encrypts data to be sent across a network, providing freedom from compatibility problems. It is sometimes called the syntax layer. The original presentation structure used the Basic Encoding Rules of Abstract Syntax Notation One (ASN.1), with capabilities such as converting an EBCDIC-coded text file to an ASCII-coded file, or serialization of objects and other data structures from and to XML. Encryption is typically done at this level too, although it can be done at the Application, Session, Transport, or Network Layers; each having its own advantages and disadvantages. Another example is representing structure, which is normally standardized at this level, often by using XML. As well as simple pieces of data, like strings, more complicated things are standardized in this layer. Two common examples are 'objects' in object-oriented programming, and the exact way that streaming video is transmitted. In many widely used applications and protocols, no distinction is made between the presentation and application layers. For example, HTTP, generally regarded as an application layer protocol, has Presentation Layer aspects such as the ability to identify character encoding for proper conversion, which is then done in the Application Layer. Within the service layering semantics of the OSI network architecture, the Presentation Layer responds to service requests from the Application Layer and issues service requests to the Session Layer. Layer 7: Application Layer Application Layer is a term used in categorizing protocols and methods in architectural models of computer networking. Both the OSI model and the Internet Protocol Suite (TCP/IP) contain an application layer.

Module in DBMS 60 Prepared by: For-Ian V. Sandoval In TCP/IP, the Application Layer contains all protocols and methods that fall into the realm of process-to-process communications via an Internet Protocol (IP) network using the Transport Layer protocols to establish underlying host-to-host connections. In the OSI model, the definition of its Application Layer is narrower in scope, distinguishing explicitly additional functionality above the Transport Layer at two additional levels: Session Layer and Presentation Layer. OSI specifies strict modular separation of functionality at these layers and provides protocol implementations for each layer. The common application layer services provide semantic conversion between associated application processes. Note: Examples of common application services of general interest include the virtual file, virtual terminal, and job transfer and manipulation protocols. The application layer is the OSI layer closest to the end user, which means that both the OSI application layer and the user interact directly with the software application. This layer interacts with software applications that implement a communicating component. Such application programs fall outside the scope of the OSI model. Application layer functions typically include identifying communication partners, determining resource availability, and synchronizing communication. When identifying communication partners, the application layer determines the identity and availability of communication partners for an application with data to transmit. When determining resource availability, the application layer must decide whether sufficient network resources for the requested communication exist. In synchronizing communication, all communication between applications requires cooperation that is managed by the application layer. Some examples of application layer implementations include Telnet, Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), and Simple Mail Transfer Protocol (SMTP). Protocol examples: 9P, Plan 9 from Bell Labs distributed file system protocol AFP, Apple Filing Protocol APPC, Advanced Program-to-Program Communication AMQP, Advanced Message Queuing Protocol BitTorrent Atom Publishing Protocol BOOTP, Bootstrap Protocol CFDP, Coherent File Distribution Protocol DDS, Data Distribution Service

Module in DBMS 61 Prepared by: For-Ian V. Sandoval DHCP, Dynamic Host Configuration Protocol DeviceNet DNS, Domain Name System (Service) Protocol eDonkey ENRP, Endpoint Handlespace Redundancy Protocol FastTrack (KaZaa, Grokster, iMesh) Finger, User Information Protocol Freenet FTAM, File Transfer Access and Management FTP, File Transfer Protocol Gopher, Gopher protocol HL7, Health Level Seven HTTP, HyperText Transfer Protocol H.323, Packet-Based Multimedia Communications System IMAP, IMAP4, Internet Message Access Protocol (version 4) IRCP, Internet Relay Chat Protocol Kademlia LDAP, Lightweight Directory Access Protocol LPD, Line Printer Daemon Protocol MIME (S-MIME), Multipurpose Internet Mail Extensions and Secure MIME Modbus Netconf NFS, Network File System NIS, Network Information Service NNTP, Network News Transfer Protocol NTCIP, National Transportation Communications for Intelligent Transportation System Protocol NTP, Network Time Protocol OSCAR, AOL Instant Messenger Protocol PNRP, Peer Name Resolution Protocol POP, POP3, Post Office Protocol (version 3) Rlogin, Remote Login in UNIX Systems RTPS, Real Time Publish Subscribe RTSP, Real Time Streaming Protocol SAP, Session Announcement Protocol SDP, Session Description Protocol SIP, Session Initiation Protocol SLP, Service Location Protocol SMB, Server Message Block SMTP, Simple Mail Transfer Protocol SNMP, Simple Network Management Protocol

Module in DBMS 62 Prepared by: For-Ian V. Sandoval SNTP, Simple Network Time Protocol SSH, Secure Shell SSMS, Secure SMS Messaging Protocol RDP, Remote Desktop Protocol TCAP, Transaction Capabilities Application Part TDS, Tabular Data Stream TELNET, Terminal Emulation Protocol of TCP/IP TFTP, Trivial File Transfer Protocol TSP, Time Stamp Protocol VTP, Virtual Terminal Protocol Waka, an HTTP replacement protocol Whois (and RWhois), Remote Directory Access Protocol WebDAV X.400, Message Handling Service Protocol X.500, Directory Access Protocol (DAP) XMPP, Extensible Messaging and Presence Protocol

INTERFACES
Neither the OSI Reference Model nor OSI protocols specify any programming interfaces, other than as deliberately abstract service specifications. Protocol specifications precisely define the interfaces between different computers, but the software interfaces inside computers are implementation-specific. For example, Microsoft Windows' Winsock, and Unix's Berkeley sockets and System V Transport Layer Interface, are interfaces between applications (Layer 5 and above) and the transport (Layer 4). NDIS and ODI are interfaces between the media (Layer 2) and the network protocol (Layer 3). Interface standards, except for the Physical Layer to Media, are approximate implementations of OSI Service Specifications.

Example of neither OSI Reference Model nor OSI protocols specify any programming interfaces.

You might also like