1 / 41

IT 3653 – Client Server Systems Administration

IT 3653 – Client Server Systems Administration. Introduction and Overview (Lecture 1) Fall 2006, Feibish. Definition: "Client Server". " Client-server is a network architecture which separates the client (often an application that uses a graphical user interface ) from the server.

gerda
Download Presentation

IT 3653 – Client Server Systems Administration

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IT 3653 – Client Server Systems Administration Introduction and Overview (Lecture 1) Fall 2006, Feibish

  2. Definition: "Client Server" • "Client-server is a network architecture which separates the client (often an application that uses a graphical user interface) from the server. • Each instance of the client software can send requests to a server or application server. • There are many different types of servers; some examples include: a file server, terminal server, or mail server. • While their purpose varies somewhat, the basic architecture remains the same. " From: http://en.wikipedia.org/wiki/Client_server

  3. Definition: "Client Server Network" • "A communication protocol between networked computers in which the services of one computer (the server) are requested by the other (the client). " From: www.planetech.co.uk/glossary.htm

  4. Definition: "Client Server Networks" • Client Server NetworksThese networks have a dedicated computer called the server which provides file services and manages shared resources.  Client computers get services from the server. • Client-server networks use their own Network Operating System (NOS).  Novell Netware is an example of the client-server model, where the workstations (clients) communicate with the server to get services.  All communications on the network is through the server. • Client - Server Networks provide: • high throughput • enhanced security • can handle hundreds of nodes • These networks are more expensive and difficult to install/manage compared to peer-to-peer networks. http://www.btinternet.com/~C.J.Duley/networking.htm#clientserver(Why does this seem to be a somewhat old definition?)

  5. Some Basics… • Let's look at the comp.client-server newsgroup for some basic terminology • Note: the last update of this list is: 17 August 1998 • (Is this unreasonably out of date?) Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  6. Subject: 2.1 What is Client-server Computing? • Client/server is a computational architecture that involves client processes requesting service from server processes. • Client/server computing is the logical extension of modular programming. • Modular programming has as its fundamental assumption that separation of a large piece of software into its constituent parts ("modules") creates the possibility for easier development and better maintainability. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  7. Subject: 2.1 What is Client-server Computing? • Client/server computing takes this a step farther by recognizing that those modules need not all be executed within the same memory space. • With this architecture, the calling module becomes the "client" (that which requests a service), and the called module becomes the "server" (that which provides the service).

  8. Subject: 2.2 What is a Client process? • The client is a process (program) that sends a message to a server process (program), requesting that the server perform a task (service). • …usually manage the user-interface portion of the application, validate data entered by the user, dispatch requests to server programs, and sometimes execute business logic. • The client-based process is the front-end of the application that the user sees and interacts with. • The client process contains solution-specific logic and provides the interface between the user and the rest of the application system. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  9. Subject: 2.2 What is a Client process? • The client process also manages the local resources that the user interacts with such as the monitor, keyboard, workstation CPU and peripherals. • One of the key elements of a client workstation is the graphical user interface (GUI). • Normally a part of operating system i.e. the window manager detects user actions, manages the windows on the display and displays the data in the windows. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  10. Subject: 2.3 What is a Server process? • A server process (program) fulfills the client request by performing the task requested. • receive requests from client programs, • execute database retrieval and updates, • manage data integrity • dispatch responses to client requests • Sometimes server programs execute common or complex business logic. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  11. Subject: 2.3 What is a Server process? • The server-based process "may" run on another machine on the network. • This server could be the host operating system or network file server; the server is then provided both file system services and application services. • Or in some cases, another desktop machine provides the application services. • The server process acts as a software engine that manages shared resources such as databases, printers, communication links, or high powered-processors. • The server process performs the back-end tasks that are common to similar applications. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  12. Subject: 2.4 What is a Two-Tier Architecture? • A two-tier architecture is where a client talks directly to a server, with no intervening server. It is typically used in small environments (less than 50 users). • A common error in client/server development is to prototype an application in a small, two-tier environment, and then scale up by simply adding more users to the server. • This approach will usually result in an ineffective system, as the server becomes overwhelmed. To properly scale to hundreds or thousands of users, it is usually necessary to move to a three-tier architecture. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  13. Subject: 2.5 What is a Three-Tier Architecture? • A three-tier architecture introduces a server (or an "agent") between the client and the server. • The role of the agent is manyfold. • It can provide translation services (as in adapting a legacy application on a mainframe to a client/server environment), • metering services (as in acting as a transaction monitor to limit the number of simultaneous requests to a given server), • or intelligent agent services (as in mapping a request to a number of different servers, collating the results, and returning a single response to the client. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  14. Subject: 2.6 What is Middleware? • ?? (Let's come back to this…) Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  15. Subject: 2.7 What is Cooperative Processing? • Cooperative processing is computing which requires two or more distinct processors to complete a single transaction. • Cooperative processing is related to both distributed and client/server processing. • It is a form of distributed computing where two or more distinct processes are required to complete a single business transaction. • Usually, these programs interact and execute concurrently on different processors. • Cooperative processing can also be considered to be a style of client/server processing if communication between processors is performed through a message passing architecture. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  16. Subject: 2.8 What is Distributed Processing? • The distribution of applications and business logic across multiple processing platforms. • Distributed processing implies that processing will occur on more than one processor in order for a transaction to be completed. In other words, processing is distributed across two or more machines and the processes are most likely not running at the same time, i.e. each process performs part of an application in a sequence. • Often the data used in a distributed processing environment is also distributed across platforms. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  17. Subject: 3.1: What are the characteristics of client/server architecture? • 1) combination of a client or front-end portion that interacts with the user, and a server or back-end portion that interacts with the shared resource. • 2) the front-end task and back-end task have fundamentally different requirements for computing resources such as processor speeds, memory, disk speeds and capacities, and input/output devices. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  18. Subject: 3.1: What are the characteristics of client/server architecture? • 3) the environment is typically heterogeneous and multivendor. The hardware platform and operating system of client and server are not usually the same. Client and server processes communicate through a well-defined set of standard application program interfaces (API's) and RPC's. • 4) An important characteristic of client-server systems is scalability. They can be scaled horizontally or vertically. Horizontal scaling means adding or removing client workstations with only a slight performance impact. Vertical scaling means migrating to a larger and faster server machine or multiservers. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  19. Subject: 3.2 What are the different types of servers? • The simplest form of servers are disk servers and file servers. • With a file server, the client passes requests for files or file records over a network to the file server. This form of data service requires large bandwidth and can slow a network with many users down considerably. Traditional LAN computing allows users to share resources, such as data files and peripheral devices, by moving them from standalone PCUs onto a Networked File Server (NFS). Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  20. Subject: 3.2 What are the different types of servers? • The more advanced form of servers are database servers, transaction server and application servers (Orfali and Harkey 1992). • In database servers, clients passes SQL (Structured Query Language) requests as messages to the server and the results of the query are returned over the network. • Application servers are not necessarily database centered but are used to server user needs, such as. download capabilities from Dow Jones or regulating a electronic mail process. • Basing resources on a server allows users to share data, while security and management services, which are also based in the server, ensure data integrity and security. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  21. Subject: 4.2. Client/Server Business Application Architectures • Therefore, client/server computing demands a three layer view of the organisation. • 1 The user interface layer, which implements the functional model • 2 The business function layer, which implements the process model • 3 The data layer, which implements the information model • It should be noted that this application architecture does not demand multiple hardware platforms, although such technology can be utilized, if the environment is robust and reliable enough and the business is prepared to pay the additional costs associated with workstation and LAN technology. Archive-name: client-server-faq Revision: 1.12 1998/08/17 13:15:27

  22. So let's put it all together and jump back to Wikipedia…. • "Client-server is a network architecture which separates the client (often an application that uses a graphical user interface) from the server. Each instance of the client software can send requests to a server or application server. There are many different types of servers; some examples include: a file server, terminal server, or mail server. While their purpose varies somewhat, the basic architecture remains the same. " http://en.wikipedia.org/wiki/Client_server

  23. Example from Wikipedia • "For example, if you are reading this article on Wikipedia, your computer and web browser would be considered a client, and the computers, databases, and applications that make up Wikipedia would be considered the server. • When your web browser requests a particular article from Wikipedia, the Wikipedia server finds all of the information required to display the article in the Wikipedia database, assembles it into a web page, and sends it back to your web browser for you to look at. " http://en.wikipedia.org/wiki/Client_server

  24. Properties of a server (Wikipedia) • Scalable • Typically runs on powerful computers • Passive (Slave) • Waiting for requests • On requests serves them and send a reply • Servers can be stateless or stateful. • A stateless server does not keep any information between requests. A stateful server can remember information between requests. The scope of this information can be global or session. A HTTP server for static HTML pages is an example of a stateless server while Apache Tomcat is an example of a stateful server. http://en.wikipedia.org/wiki/Client_server

  25. Properties of a client (Wikipedia) • Typically runs on common PCs, workstations, handhelds, etc. • Gets info form servers • Active (Master) • Sending requests • Waits until reply arrives http://en.wikipedia.org/wiki/Client_server

  26. Sequence Diagrams • The interaction between client and server is often described using sequence diagrams. • Sequence diagrams are standardized in the UML (Unified Modeling Language) http://en.wikipedia.org/wiki/Client_server

  27. Peer-to-Peer networks • Nodes are both clients and servers • Win3.1 (Windows for Workgroups), Win95/98, etc. • Popular for small networks http://en.wikipedia.org/wiki/Client_server

  28. Tiered architectures (Wikipedia) • A generic Client/Server architecture has two types of nodes on the network: clients and servers. As a result, these generic architectures are sometimes referred to as "two-tier" architectures. • Some networks will consist of three different kinds of nodes: clients, application servers which process data for the clients, and database servers which store data for the application servers. This is called a three-tier architecture. http://en.wikipedia.org/wiki/Client_server

  29. Tiered architectures (Wikipedia) • The advantage of an n-tier architecture compared with a two-tier architecture (or a three-tier with a two-tier) is that it separates out the processing that occurs to better balance the load on the different servers; it is more scalable. • The disadvantages of n-tier architectures are: • It puts a greater load on the network. • It is much more difficult to program and test software than in two-tier architecture because more devices have to communicate to complete a user’s transaction. http://en.wikipedia.org/wiki/Client_server

  30. 3-tier architecture (Wikipedia) http://en.wikipedia.org/wiki/Client_server

  31. Client/Server Addressing (Wikipedia) • Methods of addressing in client server environments can be described as follows • Machine process addressing; where the address is divided up as follows process@machine. Therefore 56@453 would indicate the process 56 on computer 453 • Name Server; Name servers have an index of all names and addresses of servers in the relevant domain. • Localization packets; Broadcast messages are sent out to all computers in the distributed system to determine the address of the destination computer • Trader; A trader is a system that indexes all the services available in a distributed system. A computer requiring a particular service will check with the trading service for the address of a computer providing such a service. http://en.wikipedia.org/wiki/Client_server

  32. Other definitions: Servent • In general a servent is a peer-to-peernetworknode, which has the functionalities of both a server and a client. • The setup is designed so that each node can upload, download, and usually also route network information, allowing for the creation and maintenance of ad-hoc networks. http://en.wikipedia.org/wiki/Client_server

  33. Other definitions: Thin Client • "A thin client is a computer (client) in client-server architecture networks which depends primarily on the central server for processing activities. " • The word "thin" refers to the small boot image which such clients typically require - perhaps no more than required to connect to a network and start up a dedicated web browser or "Remote Desktop" connection such as X11, Citrix ICA, Microsoft RDP or Nomachine NX. http://en.wikipedia.org/wiki/Thin_client

  34. Other defs: Application Server • "An application server is a server computer in a computer network dedicated to running certain softwareapplications (as opposed to e.g. a file server or print server). • The term also refers to the software installed on such a computer to facilitate the serving (running) of other applications. " http://en.wikipedia.org/wiki/Application_server

  35. Other defs: File Server • In common parlance, the term file server refers specifically to a computer to which a user can map or mount a drive or directory such that that directory appears to be on the machine at which the user is sitting, and to which the user can read or write a file as though it were part of the filesystem of the user's computer. • Files and directories on the remote computer are usually accessed using a particular protocol, such as SMB, CIFS, NFS (Network file system), Appletalk, or their mutations http://en.wikipedia.org/wiki/File_server

  36. Other defs: Mail Server / MTA • "A mail transfer agent or MTA (also called a mail transport agent, mail server, or a mail exchange server in the context of the Domain Name System) is a computer program or software agent that transfers electronic mail messages from one computer to another. • It receives messages from another MTA (relaying), a mail submission agent (MSA) that itself got the mail from a mail user agent (MUA), or directly from an MUA, thus acting as an MSA itself. The MTA works behind the scenes, while the user usually interacts with the MUA. • The delivery of e-mail to a user's mailbox typically takes place via a mail delivery agent (MDA); many MTAs have basic MDA functionality built in, but a dedicated MDA like procmail can provide more sophistication." http://en.wikipedia.org/wiki/Mail_server

  37. Other defs: Virtual Network Computing (VNC) • Virtual Network Computing (VNC) is a desktop sharing system which uses the RFB (Remote FrameBuffer) protocol to remotely control another computer. It transmits the keyboard presses and mouse clicks from one computer to another relaying the screen updates back in the other direction, over a network. • VNC is platform-independent: a VNC viewer on any operating system can connect to a VNC server on any other operating system. There are clients and servers for almost all operating systems and for Java. Multiple clients may connect to a VNC server at the same time. Popular uses of the technology include remote technical support, and accessing files on your work computer from your home computer. http://en.wikipedia.org/wiki/Vnc

  38. Other Defs: Remote Desktop Protocol • Remote Desktop Protocol (RDP) is a multi-channel protocol that allows a user to connect to a computer running MicrosoftTerminal Services. Clients exist for most versions of Windows, and other operating systems such as Linux, FreeBSD, and Mac OS X. The server listens by default on TCP Port 3389. • Clients compatible with the Remote Desktop Protocol run on a number of different operating systems, and is even a core feature of some Linux distributions. Users do not, however, need a broadband connection to access their desktop, as even a 56K modem provides enough speed to provide 5-6 screen refreshes per second. http://en.wikipedia.org/wiki/Remote_Desktop_Protocol

  39. Other Defs: ClamAV • Clam AntiVirus (ClamAV), is a widely used freeantivirus software toolkit for Unix-like operating systems. It is mainly used with a mail exchange server as a server-side email virus scanner. ClamAV is open source software distributed under the terms of the GNU General Public License (GPL). Both ClamAV and its updates are made available free of charge. • ClamAV is generally configured to automatically update its list of virus definitions via the Internet. http://en.wikipedia.org/wiki/Clamav

  40. Other Defs: Samba (software) • Samba is a free software implementation of Microsoft's networking protocol released under the GNU General Public License. As of version 3, Samba not only provides file and print services for various Microsoft Windows clients but can also integrate with a Windows Server domain, either as a Primary Domain Controller (PDC) or as a Domain Member. It can also be part of an Active Directory domain. • Samba runs on most Unix and Unix-like systems, such as GNU/Linux, Solaris, and the BSD variants, including Apple's Mac OS X Server (it was added to the OS X workstation edition with version 10.2). It is standard on virtually all distributions of Linux and is commonly included as a basic system service on other Unix-based systems as well. http://en.wikipedia.org/wiki/Samba_%28software%29

  41. Questions?

More Related