Network Computing
Network Computing
• The nodes are stand-alone computers that
  could be connected via a switch, LAN, or
  the Internet.
• The main idea is to divide the application
  into semi-independent parts according to
  the kind of processing needed.
  • Different nodes on the network can be
    assigned different parts of the application.
Client/Server Systems
 162     NETWORK COMPUTING




                                                                 Server Threads


                             Interconnection
                                 Network




             Figure 7.2   A multithreaded server in a client server system.



 7.2.1   Sockets
port number, we should create an instance of a server socket. A server socket listens
on a TCP port for a connection from a client (passive socket). When a client con-
nects to that port, the server accepts the connection. Figure 7.3 visualizes the

                               Sockets
socket connection. Once the connection is established, the client and server can
read from and write to the socket using input and output streams. Streams are
ordered sequences of data that have a source (input stream), or destination (output
stream). Once the client or server finishes using the socket, the socket structure is
de-allocated.




                Client                                         Server




                          Figure 7.3   A socket connection.
Remote Procedure Call (RPC)
•   RPC can be thought as a procedure call where
    the procedure is located on a different
    computer than the caller.

•   When the procedure is called, its parameters
    are passed via the network to the remote
    computer, and then the remote computer
    executes the procedure, returns the result(s),
    and continues on its way.

•   It can be constructed on top of sockets.
Middleware               7.2   CLIENT/SERVER SYSTEMS    165

7.2.3    Middleware
Middleware is an important part of client/server systems because it solves many
interoperability problems, opens the door for multiple servers, and in general pro-
vides great flexibility. Middleware is an important intermediate layer of software,
for the following reasons:

  .   It makes it possible for new systems to coexist with legacy systems, which
      means we can use it to glue together new clients with old mainframe
      databases;
  .   It solves a number of interoperability problems because it can simultaneously
      convert formats and gain access without code rewriting;
  .   It isolates system components so that changes in one component have little
      effect on other components; and
  .   It lowers effort and time to develop and deploy systems because programmers
      do not need to know network and distributed programming details.


7.2.4    A Client Server Framework for Parallel Applications
.   Single entry point: A user can connect to the cluster instead of to a particular node.
  .   Single file system: A user sees a single hierarchy of directories and files.
  .   Single image for administration: The whole cluster is administered from a



                            Clusters
      single window.
  .   Coordinated resource management: A job can transparently compete for the
      resources in the entire cluster.

In addition to providing high-performance computing, clusters can also be used to
provide high-availability environment. High availability can be achieved when


                             Programming Environment and Tools

                                         Middleware



                 OS                                       OS                OS
            M                                       M                  M
                      I/O                                      I/O               I/O
            C                                       C                  C

             P                                        P                 P




                                       Interconnection
                                           Network




          Figure 7.5        A cluster made of homogenous single-processor computers.
Grid Computing