Tallaght Campus

Department of Computing

Clients, Servers and the WWW3

  1. Clients and Servers - Overview

        ____________
       /   //||\\   \
      /   ////\\\\   \
      \   \\\\////   /   
       \___\\||//___/
    			    

    Clients and Servers - Overview

    • The client-server model describes a pattern of communication in a distributed application (e.g. an application on the Internet)
    • This pattern is used by the majority of Internet applications today, including the WWW and email
    • In applications that follow the client-server model there are two roles played by participating network nodes:
      • server
        • always connected to the network
        • listens for requests and carries out some action based on the request, for example
          • returns the content of a URL (WWW server)
          • receives an email message and adds it to the recipients inbox (mail server)
          • carries out a back-end action such as a bank transaction and returns a status update in the form of a web page (WWW+application server)
      • client
        • connects to the network as required
        • makes requests and receives responses
        • presents response to the user or processes it in some other way
        • many clients connect to one server
  2. Web Servers and Clients

      | BR| --req--> |WWW|
      |OWS|          |SER|
      |ER | <--res-- |VER|
    			    

    Web Clients and Servers

    • On the World Wide Web (WWW), clients and servers communicate using the Hypertext Transfer Protocol (HTTP)
    • The WWW client is typically a browser
      • Browsers
        • implement the HTTP protocol
        • know how to interpret HTML, CSS and Javascript
        • display information to users based on the interpretation of documents in those languages
      • They were initially text based but very quickly became GUI-able
      • There are may browser implementations (for a timeline of browser 'lives' see the very detailed graphical information in this Wikipedia article), such as:
        • Mozilla Firefox
        • Microsoft Internet Explorer
        • Apple Safari (based on the opensource WebKit project)
        • Google Chrome (also originally based on the WebKit project)
    • A WWW server or web server is a type of software application that
      • may be implemented to run on any platform (MS Windows, Linux, Mac OS)
      • when operational, runs continuously, waiting for client requests and responding to them
      • currently has many implementations (see netcraft for details of market share), the most popular of which are
        • Apache
          • originally developed by the National Center for Supercomputing Applications (NCSA), University of Illinois, Urbana/Champaign
          • now an opensource project by the Apache Software Foundation (apache.org)
          • the market leader
          • available for almost any platform
        • Microsoft Internet Information Server
          • implements a number of Internet applications: FTP, SMTP, NNTP, and HTTP/HTTPS
        • nginx
          • at first based on Apache
          • can also be used as reverse proxy and load balancer
  3. Web Servers - A Closer Look

       |WWW|
       |SER|
       |VER|
    			    

    Web Servers - A Closer Look

    • Apart from denoting the web server as a type of application, term 'web server' is used for the entire hardware-platform-application stack of a deployed server. This consists of
      • hardware, which can vary greatly
        • typically high-end multi-processor PCs, with large amounts of memory and disk space
        • blade servers (many multi-processor boards, placed into rack-mounted frames)
          More about blade servers
          Figure: Blade servers in enclosure
        • any sort of PC for hobby deployments
      • platform
        • examples
          • Windows
          • Linux
          • Mac OS (has an inbuilt server)
        • may act as a virtual server, where multiple servers are hosted on one machine (how does this work from the point of view of domains and subdomains?)
      • web server application (Apache, MS IIS, nginx)
  4. Cloud Computing

            ______
           /      \_
         _/         \_
        /             \
       /          ____/
       \_________/ 
    				

    Cloud Computing

    • Cloud computing employs a special form of web server, which is
      • carries out the functionality of a conventional application
      • provides a user interface to the application using the web client-server communication mechanism
    • With cloud computing
      • resources such as processing power, disk storage and memory are all harnessed on the server, rather than client, side
      • users have access to high-end security, reliability, accessibility and other categories of features
      • cost is reduced for users
    • Services are offered at different levels:
      • Infrastructure as a Service (IaaS) - virtual machines Amazon Elastic Compute Cloud (EC2)
      • Platform as a Service (PaaS) - development environment Heroku, Google App Engine
      • Software as a Service (SaaS) - cloud applications Google Docs, Dropbox
      • Backend as a Service (BaaS) - database, authentication, push notifications (mostly for mobile apps) Google Firebase, OAuth
      • Container as a Service (CaaS) - containers GKE, Amazon EC2
      • Function as a Service (FaaS) - functions in any language Amazon Lambda, Google Cloud Functions
    • Providers of cloud computing are, for example
      • Amazon Web Services
      • Microsoft Azure
      • Microsoft Office 365
      • Google Drive, Cloud etc.
      • web hosting companies