SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
Computer Science Program, The University of Texas, Dallas




                                         Client-Server Architecture
                                                                                                                                             Clients and Servers

                                                                                                                                             Client/Server with File Servers
                                                                                                                                             Client/Server with Database Servers
                                                                                                                                                         Client/Server Communication
                                                                                                                                     Client/Server with Transaction Processing
                                                                                                                                     Client/Server Groupware
                                                                                                                                     Web Client/Server



                                                                                                                                             Lawrence Chung




                             Paradigm Shift: Past, Present and Future

W Centralized processing
   A host computer (often a mainframe) handls all processing,
   including input, output, data storage and retrieval

     
                         ¡   ¢           £           ¤           ¥           ¦   §           ¨           §                       ©          ¤           ¥                                 ©   ¦   §                      ¥                   ¤       £       ¢                   ¦       §                   ©          ¢            




W Distributed processing
  A number of computers (minis, workstations, PCs, ...) handle all processing,
  They are distributed physically and connected thru a communications
  network

     
                                ¢                      ¤           ¥                                     ©       ¦       §                  ¥           ¤           £           ¢                   ¤           ©                  ¢                          ¡   ¢                          ¢       §           ©




         




W Cooperative processing
   A number of computers (minis, workstations, PCs, ...) handle all processing,
   They are distributed physically and connected thru a communications
   network
   Processing thru sharing of resources, transparently to the users


     
                                    ¢                      ¤           ¥                                     ©       ¦       §                  ¥           ¤           £           ¢                   ¤           ©                  ¢                              ©                  ¡       ¢




             




                                                                                                                                                                                 Lawrence Chung
Clients and Servers
v   Basic Definition
    3 Client: requests for services
    3 Server: provides services
    2 Service: any resource
       (e.g., data, type defn, file, control, object, CPU time, display device, etc.)

v   Typical Properties
    u A service request is about what is needed, and it often made abstractly
       It is up to the server to determine how to get the job done
             - the notion of module
                 (cf. MILs, ADTs --- Larch, Z)

    u The ideal client/server software is independent of hardware or OS platform
    u The location of clients and servers are usually transparent to the user
    u A client may become a server; a server may become a client
    u A client/server system can be scaled
            horizontally, i.e., by adding/removing client workstations
            with only a slight performance impact
            vertically,  i.e., by migrating to a larger and faster server machines
            or multiservers


                                  Lawrence Chung




                Client/Server with File Servers


                     Client            Client             Client
                   Application       Application        Application

Centralized

                                       File Server


        3   The client passes requests to the file server (software) for file records
        3   Clients can reside in the same machine or separate machines (typically PCs)
        3   Requests can be either local or over a network
        3   Indispensable for documents, images, drawings, and other large data objects

                     Client              Client           Client
                   Application         Application      Application


Distributed                            Network



                         File Server             File Server



                                  Lawrence Chung
Client/Server with Database Servers


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Client                                                                                                                                                                                                                                                                                                                                                                                                                  Client                                                                                                                                                                                                                                                                                                                          Client
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Application                                                                                                                                                                                                                                                                                                                                                                                                             Application                                                                                                                                                                                                                                                                                                                     Application


                                                                                                                                                                                                                                                                      insert/update/delete
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Network
                                                                                                                                                                                                                                                                      tuple(s)


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Database
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Server


3 At present the majority of existing client/server-based software is to be found in the area of
                                      databases, and it is here that the greatest challenge to any corporation currently lies.
                                                                         [Richard Finkelstein, President, Performance Computing]

3                                         Events (violation of integrity constraints, temporal conditions, errors) trigger event handlers
                                          - implicit invocation, blackboards, events


3 A DBMS also offers features for recovery and concurrency control
                                          !                                                                      #                           $               %                                                                                                                                                      #                                                                                                                                                                                                                                                 5                                                   6               7                                                                                                                                                                                                                                                                                                                                                                     #




                                                                                                                                                                                                          '                                   (                   )                       0                                                                   (                                               '                           1                           2                           3                               4                                                                                                                                   '                               1                   2                               8                                                                       (                   '                                   9                                       @                   A                                           B                                               '                       C               C                   C




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Lawrence Chung




                                                                                                                                                                                                                                                                                                                                                                                                                                          Client/Server Communication
                                                                                                                                                                                                                                                                                                                                                                                                                          Sockets - RPCs - MOMs and ORBs
 Sockets
                                      3 introduced in 1981 as the Unix BSD 4.2 generic interface
                                      3 provide Unix-to-Unix communications over networks
                                      3 The Windows socket API (Winsock): based on the Unix BSD 4.2 sockets interface
                                                                                                                                                                                                          Net_id.Host_id
                                                                                                                                  Internet Address                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Port Address
                                                                                                      6           D                                                                                              E                                                                                                                      6       G                                                                           5                                                                                   %                                   6                                           %                                                      H                                                                                                                                               6                   G                                                                                                                                                                                                                                                                                                                                                                                6                                                                                   #                                                   %                                                                                           #               Q




                                  @                       2                                                                                   @                                                                                                                                   B                   F                                                                                   '                                                                                   @                                                       B                       A                                                                                                                                           4                           (                       B               F                                                                   '                               I                                   4                                               B                   (                                       P                               2                                       B                                   )                       A                       4                           2                   B       (                   B       4                               A               A                                   2                       (                   4           2                                                   4               (       B       R




                      q
                              3 Principal transport service calls
                                                              d                           `                                   X                       Y                           `                                                   X                                                       T                           U                                       V                           p                                       `                           Y




  S                                               T                           T                                   U                           V
                                                                                                                                                          Socket (addr format, type: connection-oriented/connectionless, protocol:TCP/IP/...)
                                                                                                                                                                  W                           X                           Y                       `                                           X                                           a                                                   S                                                   T                       V                           W                           W                           a                                       X                               b                                                       `                                           Y                           U                                               X                                   c                                           d                   `                   e                                   W                           U                       f                                       T                   g                       h                               V                   d                   `                   X                   Y           `               i                       T               U               V           p                   `                   Y




              q                                       d                           `                                   X                           Y
                                                                                                                                                          Bind(...)           `                                                   X                                       r                                       f                               `                                   f                                           `                                           s                       U                                   d                                       T                           Y                   U                               d                           W                       a                               t                                               W                       a                       V                               U                           b                                               W                   a                                       t                                           V                           U                           a                   a                               `               V                   Y           W           U               a                       d               `               r                   f                   `                       T               Y               T               u       v           g           U           V           p           W           a           t       w           a           U       a           x   v       g       U   V       p   W   a   t   y




          €                                           `                                   b                                                   U
                                                                                                                                                          Listen(...)     e                                   `                                               X                                               V                               U                           a                                           a                                   `                               V                               Y                   W                   U                           a                                                       d                           `                               r                               f                                       `                           T                   Y                                   s                           d                   U                           b                                                                       Y                                                          `                                           r                   f                           `                   f                   `                       U                   d               ‚                       X               W           Y                           s                   U           d                       U       a                   `                   u       v           g           U           V       p           W       a           t       w   a           U       a       x   y




          ƒ                           a                               W                               Y               W                   X
                                                                                                                                                          Accept(...)     Y                       `                                               X                                           V                               U                                   a                                       a                                   `                               V                           Y                           W                   U                           a                                                   ‚                                               W                   Y                                                                                  X                                   d                           `                               b                                       U                                   Y                           `                                               T                       U                               V                   p                           `               Y




      „                                       `                           d                                   b
                                                                                                                                              Connect(local_socket, remote_socket)
                                                                                                                                                          W                               a                                   X                           Y                   `                                                   Y                                                              `                                                   V                           U                                   a                                   a                               `                               V                           Y                       W                   U                           a                                                       U                           a                                                   X                                               T               U                                   V                           p                                   `                   Y




                          …                               `                                   a                                   i
                                                                                                                                              Shutdown(local_socket, remote_socket)   X                                                   b                                           `                               T                               T                               X                                   t                                   `                                               Y                                                      d                           f                                                           X                                               t                               U                           e                                   `                   a                                                           T                       U                   V                               p                                       `                           Y




                  €                                           `                                   V                       `
                                                                                                                                          Send(local_socket, remote_socket, buffer, bytes)
                                                                                                                                                  W                   e                               `                                               X                                                   b                                                           `                               T                               T                           X                           t                                           `                                   Y                                                                  d                       f                                                       X                                               t                                   U                       e                           `                                   a                                               T                           U                               V                           p                               `                               Y




                              q                                                                          `                           V
                                                                                                                                                      Recv(local_socket, remote_socket, buffer, bytes)
                                                                                                                                                          p                                                           X                                               T                           `                                   Y                                       U                                   s                                       T                           U                                       V                   p                                   `                           Y                           T                                       Y                           U                                               T                           `                           `                                   W                       s                                   X                       a                                           h                                               V                       X                                   a                                       v                       `                               d                   `               X               i                       U           d                           ‚                       d                   W           Y               Y               `           a                       u   v               g           U           V       p               W       a           t               y




                                                                                                                                                  Select(...)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Lawrence Chung
Client/Server Communication
                   Sockets - RPCs - MOMs and ORBs
¤ RPCs (Remote Procedure Calls)
    3 a transparent mechanism to give the client procedure the illusion that
       it is making a direct call on the distant server procedure
    3 stubs:
      local procedures (e.g., read(file_id, buffer, count)) hiding details of network comm.

    3 10 steps to execute a RPC
       Client prog/proc                                      Server prog/proc

                   10. result                       5. parameter          6. server proc
                     unmarshalling                     unmarshalling         returns
 1. stub call       (unpack the msg                  (unpack the msg
                     into result)                   into parameters);
                                                    server proc call

        Client stub                                            Server stub

2. parameter                                        4. pass the msg       7. result
 marshalling       9. pass the msg                                           marshalling
 (collect  pack                                                          (pack the result
the parameters                                                             into a msg);
into a msg);                                                               a sys call
a sys call
                              3. send the call msg
       Transport entity                                       Transport entity
                              8. send the return msg
                                     Lawrence Chung




                   Client/Server Communication
                   Sockets - RPCs - MOMs and ORBs
u   MOM (Message-Oriented Middleware)
       Every DAD (Distributed Application Development) needs a MOM


                                                u                v                           u
    ¤              RPC
                                 ¤                                 MOM


  3   Many-to-many messaging via queues

                                                                        Server
       Client


                                                                        Server
       Client
                          post office-like
                          asynchronous
                          no fixed sequence                             Server
       Client             a single queue sharable




                                     Lawrence Chung
Client/Server with Transaction Processing


                                                                                                                        Client                                                               Client                                                          Client
                                                                                                                      Application                                                          Application                                                     Application


                                                                                                      transactions
                                                                                                      (banking,                                                                                                                    Network
                                                                                                       reservation,...)


                                                                                                                                                                                                       TP Monitor



                                                                                                                                                                                                           Database
                                                                                                                                                                                                           Server


3        Transaction changeAddress (p: String, newAddress: Address)
             begin
                   oldAddress - retrieve address from Person where name = p
                   if oldAddress = newAddress then return error1
                                               else update Person where p = name
                                                          with address - newAddress
             end

3        Transaction increaseSalary (increment: Dollar)
             begin
                   ...
             end
                                                                                                                                                                                  Lawrence Chung




                                                      Client/Server with Transaction Processing
3 Transactions are a way to make ACID operations a general commodity
                                                  [Transaction Processing Concepts and Techniques, Jim Gray and Andreas Reuter, 1993]

         Ë Atomicity
           t a transaction is an indivisible unit of work
           t an all-or-nothing proposition
           t all updates to a database, displays on the clients’ screens, message queues
           t e.g., salary increase for all 1 million employees or none

         Ë Consistency
                          t a transaction is an indivisible unit of work
                          t S - [T | abort] - S
                          t integrity constraints (e.g., mgr.salaray  salary)

         Ë Isolation
           t a transaction’s behavior not affected by other transactions running concurrently
           t e.g., reserve a seat
           t serialization techniques
         Ë Durability
           t persistence
           t a transaction’s effects are permanent after it commits.
 †        ‡       ˆ       ‰                  ‘       ’          “       ”       •       –       —   ˜       ”       ™       ˜       –       –       d   e   f   d   e   g   g    ’   ”   g      ”   h   ˆ   —   i   ‘   f   ”   j   ”   ‘   ‘   e   ™   k   l   e   f   d   k   –   m   j   e   f   i   —   ˜   e   n   ”   —   –   –   •   m   j   ˜   –   o      —   h




     p        q       r       ”   f       –       m       s           ˜       g       ™   ”   e           j       ˜              f       s       h




                                                                                                                                                                                  Lawrence Chung
Client/Server with Transaction Processing
v       Two-Phase Commit Protocol
 3 To synchronize updates on different machines so that they either all fail or all succeed
 3 centralize the decision to commit but giving each participant the right of veto
 3 like a Christian marriage
                                                    Commit Coordinator                                                                                                                                                                                                                                      Subordinate                                                                                          Subordinate
                                                       (Root)                                                                                                                                                                                                                                                 Node                                                                                                 Node


                                                    Prepare-to-commit                                                                                                                                                                                                                           Prepare-to-commit                                                                                   Prepare-to-commit
  Phase 1




                                                                                    Record in Log                                                                                                                                                                                                   Ready-to-commit                                                                                  Ready-to-commit



                                                                                                                                Commit                                                                                                                                                                                      Commit                                                                               Commit
    Phase 2




                                                                                                                                            Complete                                                                                                                                                                        Complete                                                                              Complete



t If the subordinates have spawned pieces of the transaction on other nodes,
      they must propagate the prepare-to-commit-command in the first phase
      - a transaction tree
t If any of the participants returns a transaction failure,
  the root node tells all its subordinates to perform a rollback
                                                                                                                                                                                                                                                                                    Lawrence Chung




                                                                                                                                                                                                                            Client/Server Groupware
3 Why?
    support for business reengineering: bcfh - maximize profit
     change the way people communicate with each other
    helps manage (and track) the product thru its various phases
     computer-supported cooperative work (CSCW)
     collaborative/workgroup computing
    return on investment: 16% to 1666% on a median investment of $100K
           [a study of 65 Notes users in 1994]
3 Five foundation technologies                                                                      t               u                   v                   w                       x           y       z       y   z   {           |   }       u       ~       z       v      v       {       y   }       €              z       ‚       u   ƒ   }      |   y   z   {   z   }   „   €   …   z    }   ƒ   {    …   t




  „
                ›                                                               ‘                                                                                  ‘                                                                                                                                              




                                        š               ‹           œ                                                   ”                       ™                                           ™               ‡       •       š               ”       “       œ                       “                   –       ”               ”       “   œ




                                                            from electronic imaging (scanning, digitization, display, storage and retrieval)
                                                            to document (component types: text, image, graphics, faxes, mail, voice clips, BBs)
  „                 †                       ‡                   ˆ           ‰               Š           ‹           ‡               Œ




  „
                               Ž                                                             ‘




                                                                                                            ‹




  „
                                                                                                                                                                                ‘




                                    ‡               “                   Š               ”                       ˆ           ”                       “           •                       “           –

            ’




                            thru microphones, video windows, electronic whiteboards,
                                 controlled access to shared document
  „
                                                                                                                                            ‘




        —                   •                   ˜           ”                       ™                           š               ‹                       “               –




                            electronic scheduling of meetings, sharing calendars and to do lists, triggering events
e Why not just DBMS?
    DBMS: highly structured data
   Groupware: highly unstructured data document database
e Why not just TP Monitors?
                            TP Monitors: transaction processes
                            Groupware: (currently) not transaction-oriented in the ACID sense
                                                                                                                                                                                                                                                                                    Lawrence Chung
Client/Server Groupware
„        †                                       ‡                       ˆ                   ‰               Š           ‹               ‡                       Œ




                                                                                                                                                                                                                                                                                                                                                                      S   c   c   d   U   e   X   g




                                                        ž                           Ÿ                                                       ¡                                               Ÿ       ¢       £   ¤               ¥       ¤       ¡           ¥           ¦           ¦       §   ¨   ©   ¥   £   ¨   Ÿ       ª




             «                           U                   X                   a



                                                                                                                                                                                                                             q       d       `       i           W   Y                                                                                                                                   S           a       T       ‚           `               d




                                                                                                                                                                                                                                                                                                                         S       c   c   d   X   W   T   X   g




     €                                   `               r                       f                       `                       T               Y



                                                                                                                                                                                                                         S           a           X       g   h               T   W       T                                                                                                                   q   f       T       Y           U       b               `       d




                             Form                                                                                                                                                                                                    DB                                                                                          e-mail                                                                          fax                                                 spreadsheet
                             Processing                                                                                                                                                                                              query                                                                                       to accountg
                                                                                                                                                                                                                                                                                                                                                                      conferencing
    d Many office workers spend a high percentage of their time processing documents
    d The workflow river carries the flow of work from port to port,
                                                     value being added along the way
    d The workflow definition must take into consideration:
       h Routes along which the object moves
       h Rules about what information is routed and when
                                                                                                                                                                                                             E.g., If the loan is over $100, 000, send it to the supervisor within the next hour
                                                                                                                                                                                                                    or else send it to the next hop
                                                         h Roles define job functions independently of the people who do it
                                                                                                                                                                                                             E.g., the supervisor role can be handled by users Adam and Eve
                                                                                                                                                                                                                                                                                                                             Lawrence Chung




                                                                                                                                                                                                                                                                                             Web Client/Server
„
                 ¬                                                                                                                                                      ‘




                                 “           œ               ”                           ˆ                                   •                           œ                   ‡           “




                                     ­                           „                               ®                                   «
                                                                                                                                                                                                     1                                                                                                                                                                                                                                                                               Page
                                                                                                                                                                                                                                                                                                 2                                                                                    3                                                                                              Object
                                                                                                                                                                                                                                                                                                                                                                                                                         4
                                                                                                                                                                                                                                                                                                                                         Internet
                                                                                                                                             6                                                                                                                                                                                           TCP/IP                                                                                                                                  HTML
                                                                                                                                                                                                                                                                                                                                                                                      5                                                                                          Documents
                         ¯                           ¡                       °                                   ±                                   ¢               Ÿ               ²           ³       ¡           ¢




                                                                                                                                                                                                                                                                                                                                                                                                                                         ¯                   ¡           °           º       ¡       ¢   »   ¡   ¢




                                                                                                                                                                                                                                                                                                                                                                                                                                                         ¼           ·           ½       ¾       ·       ½

                             ´                       µ               ¶                           ·                   ¸                                       ¹




                                     You select a target URL (Univeral Resource Locator - platform-independent naming scheme)
    1
                                                                     http                                                                                                                                                                    ://www.utdallas.edu :80                                                                                                                                  :~ttsx19c/java/toys.html
                                                                                                                 Protocol                                                                                                                                                        Server Address                                                                  Port Number                            Target Resource Path


    2 Brower takes the URL, embeds it inside an HTTP request, and sends it to the server
                                                                     h HTTP (HyperText Transfer Protocol), a stateless RPC,                                       is used to retrieve URL-named resources
                                                                                                         1) establishes a client/server connection, 2) transmits and receives parameters including a returned file,
                                                                                                         and 3) breaks the client/server connection
                                                                                                         STATELESS: a new connection for each user request - simple but inefficient
3 The HTTP server receives the reqest on the port, makes a socket connection,
4 The server finds the requested HTML file (Page Object) and concatenates it with status info
                                                     d                                                   HTML (HyperText Markup Language) describes the structure of a Web document,
                                                                                                         provide font and graphics info, and define hyperlinks to other Web pages  Internet resources)
5 The server ships back the file, and closes the connection
    6 The Browser interprets the HTML command and displays the page content
                                     and invokes a helper application (e.g., xview, audiotool)
                                                                                                                                                                                                                                                                                                                             Lawrence Chung
Web Client/Server
„
     ¿                                                                                          À                           Á                                                                               À                              À   Á   Ä            ‘      ‘       ‘   Å                                           ‘                  




                 ‡                       ˆ                                                                                                   ™                                   œ                                   ”   š   à   ™       œ   ”               à    ˆ               œ           ”   Æ   ”   ‹   ”   •   œ   ˆ   ‡   “       •   •   ‡           ”   ˆ   •   ”




                         Ç                       W           È                       È                           X                                                                                                                                                                                                                                                                                                                        3                                           Env.
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Var.
                                                                                                                                                                                                                                             1                                                                                        2
                             É                       d                           i                   `                               d




                     Ê                       U                           d               b
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 5
                                                                                                                                                                                                                                                                              Internet                                                                        HTTP                                                                4
                                                                                                                                                                                                                                                                                                                                                              Srvr                                                                                                                            CGI
                                                                                                                                                                                                                                                                              TCP/IP                                                                                                                                                                                                          Prog
                                                                                                                                                                                                                                                                                                                                      9                                                                                           6
         ¯                           ¡                           °                                       ±                               ¢               Ÿ           ²                       ³   ¡       ¢
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 7
             ´                       µ                   ¶                       ·                           ¸                                       ¹



                                                                                                                                                                                                                                                                                                                                                                                                                                  8
                                                                                                                                                                                                                                                                                                                                                                              ¯           ¡           °                   º               ¡               ¢       »           ¡       ¢




                                                                                                                                                                                                                                                                                                                                                                                      ¼                   ·           ½               ¾               ·               ½




          You click on the form’s submit button
1
         The Web browser collects the data within the form, assembles it into a string of name/value pairs,
         specifies a POST method, the URL of the target program in the cgi-bin directory
    2 The HTTP server receives the method invocation via a socket connection
    3 The server parses the message to discover that it’s a POST for the cgi-bin program
          - start a CGI interaction:
            The HTTP server sets up the environment variable (e.g., content_length), in a blackboard
    4 The HTTP server starts a CGI program
    5 The CGI program reads the environment variables
6 The CGI program receives the message body via the input pipe
7 The CGI program does some work, typically by interacting with a DBMS, TP Monitor
8 The CGI program returns the results via the output pipe
9 The HTTP server returns the results to the Web brower
                                                                                                                                                                                                                                                                 Lawrence Chung




                                                                                                                                                                                                                                         Web Client/Server
„
     ¿                                                                                                              ‘                                                       À       Ë




                                     œ                                                                   ‹                       ”                       “       œ

                                                                     ’




                                                                                                                                                                                                                                                                                                                                                                                                                      Java
                                                                                                                                                                                                                                                                                                                                                                                                                      Applet

                 Bytecode Verifier


                                 Class Loader                                                                                                                                                                                4                                                                                                                                                                    Java Compiler

Java                                                                                                                                                             Just-in-Time
Run-time
                                                                                                                                                                 Compiler
Interpreter

                                                                                                                                                                                                                                                                                                                                                                                                                                  Applet
                                                                                                                                                                                                                                         1                                                                                                                                                                                        Bytecode
                                                                                                                                                                                                                                                                                                                                                                      2
                                                                                                                                                                                                                                                                              Internet
                                                                                                                                         5                                                                                                                                    TCP/IP
                                                                                                                                                                                                                                                                                                                                      3
         ¯                           ¡                           °                                       ±                               ¢               Ÿ           ²                       ³   ¡       ¢


                                                                                                                                                                                                                                                                                                                                                                                  ¯               ¡               °               º               ¡               ¢       »       ¡       ¢




                                 ´                                           µ               ¶                           ·                       ¸                       ¹




                                                                                                                                                                                                                                                                                                                                                                                              ¼               ·               ½               ¾               ·           ½




    1 A Web browser requests a Java applet
                     The Browser initiates a separate TCP/IP session to download each applet within a Web page
2 The server retrieves the requested applet
 3 The server sends the applet
 4 The browser loads the applet into the client’s memory and executes it
                                 A poor man’s compound document architecture
                                   The applet’s region does NOT visually integrate with the rest of the page
    5 The browser deletes the applet from memory when it exits the Web page
                                                                                                                                                                                                                                                                 Lawrence Chung

Contenu connexe

Tendances

VMware roitco_analysis
VMware roitco_analysisVMware roitco_analysis
VMware roitco_analysissc976430
 
Patterns of Data Distribution
Patterns of Data DistributionPatterns of Data Distribution
Patterns of Data DistributionRick Warren
 
Requirements Evolution Drives Software Evolution
Requirements Evolution Drives Software EvolutionRequirements Evolution Drives Software Evolution
Requirements Evolution Drives Software EvolutionNeil Ernst
 
Oracle Distributed Document Capture
Oracle Distributed Document CaptureOracle Distributed Document Capture
Oracle Distributed Document Captureguest035a27
 
VNSISPL_DBMS_Concepts_ch20
VNSISPL_DBMS_Concepts_ch20VNSISPL_DBMS_Concepts_ch20
VNSISPL_DBMS_Concepts_ch20sriprasoon
 
Linked In Lessons Learned And Growth And Scalability
Linked In Lessons Learned And Growth And ScalabilityLinked In Lessons Learned And Growth And Scalability
Linked In Lessons Learned And Growth And ScalabilityConSanFrancisco123
 
2nd Eucalyptus Bay Area Meet Up with Rich Wolski
2nd Eucalyptus Bay Area Meet Up with Rich Wolski2nd Eucalyptus Bay Area Meet Up with Rich Wolski
2nd Eucalyptus Bay Area Meet Up with Rich WolskiEucalyptus Systems, Inc.
 
Branch repeater technical training presentation 26 oct-12
Branch repeater technical training presentation 26 oct-12Branch repeater technical training presentation 26 oct-12
Branch repeater technical training presentation 26 oct-12Nuno Alves
 

Tendances (11)

Session9part2 Servers Detailed
Session9part2  Servers DetailedSession9part2  Servers Detailed
Session9part2 Servers Detailed
 
VMware roitco_analysis
VMware roitco_analysisVMware roitco_analysis
VMware roitco_analysis
 
Patterns of Data Distribution
Patterns of Data DistributionPatterns of Data Distribution
Patterns of Data Distribution
 
Requirements Evolution Drives Software Evolution
Requirements Evolution Drives Software EvolutionRequirements Evolution Drives Software Evolution
Requirements Evolution Drives Software Evolution
 
Oracle Distributed Document Capture
Oracle Distributed Document CaptureOracle Distributed Document Capture
Oracle Distributed Document Capture
 
VNSISPL_DBMS_Concepts_ch20
VNSISPL_DBMS_Concepts_ch20VNSISPL_DBMS_Concepts_ch20
VNSISPL_DBMS_Concepts_ch20
 
Linked In Lessons Learned And Growth And Scalability
Linked In Lessons Learned And Growth And ScalabilityLinked In Lessons Learned And Growth And Scalability
Linked In Lessons Learned And Growth And Scalability
 
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud InfrastructurePrivate Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
 
2nd Eucalyptus Bay Area Meet Up with Rich Wolski
2nd Eucalyptus Bay Area Meet Up with Rich Wolski2nd Eucalyptus Bay Area Meet Up with Rich Wolski
2nd Eucalyptus Bay Area Meet Up with Rich Wolski
 
Provident Financial-Cisco
Provident Financial-CiscoProvident Financial-Cisco
Provident Financial-Cisco
 
Branch repeater technical training presentation 26 oct-12
Branch repeater technical training presentation 26 oct-12Branch repeater technical training presentation 26 oct-12
Branch repeater technical training presentation 26 oct-12
 

Similaire à Cs architecture

Client server computing
Client server computingClient server computing
Client server computingjorge cabiao
 
Part 1 network computing
Part 1 network computingPart 1 network computing
Part 1 network computingLinh Nguyen
 
Your Firm In The Cloud
Your Firm In The CloudYour Firm In The Cloud
Your Firm In The CloudBCS ProSoft
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategydrmarcustillett
 
Drupal in the Cloud with Windows Azure
Drupal in the Cloud with Windows AzureDrupal in the Cloud with Windows Azure
Drupal in the Cloud with Windows AzureFord AntiTrust
 
Client server architecture
Client server architectureClient server architecture
Client server architectureRituBhargava7
 
please define and describe the following- web server- application serv.docx
please define and describe the following- web server- application serv.docxplease define and describe the following- web server- application serv.docx
please define and describe the following- web server- application serv.docxellenj4
 
Server its functions and types.pptx
Server its functions and types.pptxServer its functions and types.pptx
Server its functions and types.pptxDrIrfanulHaqAkhoon
 
server-131210061249-phpapp02.pdf
server-131210061249-phpapp02.pdfserver-131210061249-phpapp02.pdf
server-131210061249-phpapp02.pdfKowsalyaJayakumar2
 
Jonas On Windows Azure OW2con11, Nov 24-25, Paris
Jonas On Windows Azure OW2con11, Nov 24-25, ParisJonas On Windows Azure OW2con11, Nov 24-25, Paris
Jonas On Windows Azure OW2con11, Nov 24-25, ParisOW2
 
C/S archtecture including basic networking
C/S archtecture including basic networkingC/S archtecture including basic networking
C/S archtecture including basic networkingabhinav2727
 
CSS12 LESSON 02.pptx
CSS12 LESSON 02.pptxCSS12 LESSON 02.pptx
CSS12 LESSON 02.pptxRGSMags
 
Introduction to cloud computing
Introduction to cloud computingIntroduction to cloud computing
Introduction to cloud computingJithin Parakka
 
Brief about Windows Azure Platform
Brief about Windows Azure Platform Brief about Windows Azure Platform
Brief about Windows Azure Platform K.Mohamed Faizal
 
Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azureManish Corriea
 
Client/Server Architecture By Faisal Shahzad
Client/Server Architecture By Faisal Shahzad Client/Server Architecture By Faisal Shahzad
Client/Server Architecture By Faisal Shahzad Faisal Shehzad
 

Similaire à Cs architecture (20)

Client server computing
Client server computingClient server computing
Client server computing
 
Part 1 network computing
Part 1 network computingPart 1 network computing
Part 1 network computing
 
Clientserver
ClientserverClientserver
Clientserver
 
Your Firm In The Cloud
Your Firm In The CloudYour Firm In The Cloud
Your Firm In The Cloud
 
Choosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform StrategyChoosing Your Windows Azure Platform Strategy
Choosing Your Windows Azure Platform Strategy
 
Drupal in the Cloud with Windows Azure
Drupal in the Cloud with Windows AzureDrupal in the Cloud with Windows Azure
Drupal in the Cloud with Windows Azure
 
Client server architecture
Client server architectureClient server architecture
Client server architecture
 
please define and describe the following- web server- application serv.docx
please define and describe the following- web server- application serv.docxplease define and describe the following- web server- application serv.docx
please define and describe the following- web server- application serv.docx
 
Cliser
CliserCliser
Cliser
 
Server its functions and types.pptx
Server its functions and types.pptxServer its functions and types.pptx
Server its functions and types.pptx
 
server-131210061249-phpapp02.pdf
server-131210061249-phpapp02.pdfserver-131210061249-phpapp02.pdf
server-131210061249-phpapp02.pdf
 
Basic Server PPT (THDC)
Basic Server PPT (THDC)Basic Server PPT (THDC)
Basic Server PPT (THDC)
 
Jonas On Windows Azure OW2con11, Nov 24-25, Paris
Jonas On Windows Azure OW2con11, Nov 24-25, ParisJonas On Windows Azure OW2con11, Nov 24-25, Paris
Jonas On Windows Azure OW2con11, Nov 24-25, Paris
 
C/S archtecture including basic networking
C/S archtecture including basic networkingC/S archtecture including basic networking
C/S archtecture including basic networking
 
CSS12 LESSON 02.pptx
CSS12 LESSON 02.pptxCSS12 LESSON 02.pptx
CSS12 LESSON 02.pptx
 
P5 cloud economics_v1
P5 cloud economics_v1P5 cloud economics_v1
P5 cloud economics_v1
 
Introduction to cloud computing
Introduction to cloud computingIntroduction to cloud computing
Introduction to cloud computing
 
Brief about Windows Azure Platform
Brief about Windows Azure Platform Brief about Windows Azure Platform
Brief about Windows Azure Platform
 
Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azure
 
Client/Server Architecture By Faisal Shahzad
Client/Server Architecture By Faisal Shahzad Client/Server Architecture By Faisal Shahzad
Client/Server Architecture By Faisal Shahzad
 

Dernier

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 

Dernier (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Cs architecture

  • 1. Computer Science Program, The University of Texas, Dallas Client-Server Architecture Clients and Servers Client/Server with File Servers Client/Server with Database Servers Client/Server Communication Client/Server with Transaction Processing Client/Server Groupware Web Client/Server Lawrence Chung Paradigm Shift: Past, Present and Future W Centralized processing A host computer (often a mainframe) handls all processing, including input, output, data storage and retrieval   ¡ ¢ £ ¤ ¥ ¦ § ¨ § © ¤ ¥ © ¦ § ¥ ¤ £ ¢ ¦ § © ¢ W Distributed processing A number of computers (minis, workstations, PCs, ...) handle all processing, They are distributed physically and connected thru a communications network ¢ ¤ ¥ © ¦ § ¥ ¤ £ ¢ ¤ © ¢ ¡ ¢ ¢ § © W Cooperative processing A number of computers (minis, workstations, PCs, ...) handle all processing, They are distributed physically and connected thru a communications network Processing thru sharing of resources, transparently to the users ¢ ¤ ¥ © ¦ § ¥ ¤ £ ¢ ¤ © ¢ © ¡ ¢ Lawrence Chung
  • 2. Clients and Servers v Basic Definition 3 Client: requests for services 3 Server: provides services 2 Service: any resource (e.g., data, type defn, file, control, object, CPU time, display device, etc.) v Typical Properties u A service request is about what is needed, and it often made abstractly It is up to the server to determine how to get the job done - the notion of module (cf. MILs, ADTs --- Larch, Z) u The ideal client/server software is independent of hardware or OS platform u The location of clients and servers are usually transparent to the user u A client may become a server; a server may become a client u A client/server system can be scaled horizontally, i.e., by adding/removing client workstations with only a slight performance impact vertically, i.e., by migrating to a larger and faster server machines or multiservers Lawrence Chung Client/Server with File Servers Client Client Client Application Application Application Centralized File Server 3 The client passes requests to the file server (software) for file records 3 Clients can reside in the same machine or separate machines (typically PCs) 3 Requests can be either local or over a network 3 Indispensable for documents, images, drawings, and other large data objects Client Client Client Application Application Application Distributed Network File Server File Server Lawrence Chung
  • 3. Client/Server with Database Servers Client Client Client Application Application Application insert/update/delete Network tuple(s) Database Server 3 At present the majority of existing client/server-based software is to be found in the area of databases, and it is here that the greatest challenge to any corporation currently lies. [Richard Finkelstein, President, Performance Computing] 3 Events (violation of integrity constraints, temporal conditions, errors) trigger event handlers - implicit invocation, blackboards, events 3 A DBMS also offers features for recovery and concurrency control ! # $ % # 5 6 7 # ' ( ) 0 ( ' 1 2 3 4 ' 1 2 8 ( ' 9 @ A B ' C C C Lawrence Chung Client/Server Communication Sockets - RPCs - MOMs and ORBs Sockets 3 introduced in 1981 as the Unix BSD 4.2 generic interface 3 provide Unix-to-Unix communications over networks 3 The Windows socket API (Winsock): based on the Unix BSD 4.2 sockets interface Net_id.Host_id Internet Address Port Address 6 D E 6 G 5 % 6 % H 6 G 6 # % # Q @ 2 @ B F ' @ B A 4 ( B F ' I 4 B ( P 2 B ) A 4 2 B ( B 4 A A 2 ( 4 2 4 ( B R q 3 Principal transport service calls d ` X Y ` X T U V p ` Y S T T U V Socket (addr format, type: connection-oriented/connectionless, protocol:TCP/IP/...) W X Y ` X a S T V W W a X b ` Y U X c d ` e W U f T g h V d ` X Y ` i T U V p ` Y q d ` X Y Bind(...) ` X r f ` f ` s U d T Y U d W a t W a V U b W a t V U a a ` V Y W U a d ` r f ` T Y T u v g U V p W a t w a U a x v g U V p W a t y € ` b U Listen(...) e ` X V U a a ` V Y W U a d ` r f ` T Y s d U b Y  ` r f ` f ` U d ‚ X W Y s U d U a ` u v g U V p W a t w a U a x y ƒ a W Y W X Accept(...) Y ` X V U a a ` V Y W U a ‚ W Y  X d ` b U Y ` T U V p ` Y „ ` d b Connect(local_socket, remote_socket) W a X Y ` Y  ` V U a a ` V Y W U a U a X T U V p ` Y … ` a i Shutdown(local_socket, remote_socket) X b ` T T X t ` Y  d f X t U e ` a T U V p ` Y € ` V ` Send(local_socket, remote_socket, buffer, bytes) W e ` X b ` T T X t ` Y  d f X t U e ` a T U V p ` Y q  ` V Recv(local_socket, remote_socket, buffer, bytes) p X T ` Y U s T U V p ` Y T Y U T ` ` W s X a h V X a v ` d ` X i U d ‚ d W Y Y ` a u v g U V p W a t y Select(...) Lawrence Chung
  • 4. Client/Server Communication Sockets - RPCs - MOMs and ORBs ¤ RPCs (Remote Procedure Calls) 3 a transparent mechanism to give the client procedure the illusion that it is making a direct call on the distant server procedure 3 stubs: local procedures (e.g., read(file_id, buffer, count)) hiding details of network comm. 3 10 steps to execute a RPC Client prog/proc Server prog/proc 10. result 5. parameter 6. server proc unmarshalling unmarshalling returns 1. stub call (unpack the msg (unpack the msg into result) into parameters); server proc call Client stub Server stub 2. parameter 4. pass the msg 7. result marshalling 9. pass the msg marshalling (collect pack (pack the result the parameters into a msg); into a msg); a sys call a sys call 3. send the call msg Transport entity Transport entity 8. send the return msg Lawrence Chung Client/Server Communication Sockets - RPCs - MOMs and ORBs u MOM (Message-Oriented Middleware) Every DAD (Distributed Application Development) needs a MOM u v u ¤ RPC ¤ MOM 3 Many-to-many messaging via queues Server Client Server Client post office-like asynchronous no fixed sequence Server Client a single queue sharable Lawrence Chung
  • 5. Client/Server with Transaction Processing Client Client Client Application Application Application transactions (banking, Network reservation,...) TP Monitor Database Server 3 Transaction changeAddress (p: String, newAddress: Address) begin oldAddress - retrieve address from Person where name = p if oldAddress = newAddress then return error1 else update Person where p = name with address - newAddress end 3 Transaction increaseSalary (increment: Dollar) begin ... end Lawrence Chung Client/Server with Transaction Processing 3 Transactions are a way to make ACID operations a general commodity [Transaction Processing Concepts and Techniques, Jim Gray and Andreas Reuter, 1993] Ë Atomicity t a transaction is an indivisible unit of work t an all-or-nothing proposition t all updates to a database, displays on the clients’ screens, message queues t e.g., salary increase for all 1 million employees or none Ë Consistency t a transaction is an indivisible unit of work t S - [T | abort] - S t integrity constraints (e.g., mgr.salaray salary) Ë Isolation t a transaction’s behavior not affected by other transactions running concurrently t e.g., reserve a seat t serialization techniques Ë Durability t persistence t a transaction’s effects are permanent after it commits. † ‡ ˆ ‰  ‘ ’  “ ” • – — ˜ ” ™ ˜ – – d e f d e g g ’ ” g  ” h ˆ — i ‘ f ” j ” ‘ ‘ e ™ k l e f d k – m j e f i — ˜ e n ” — – – • m j ˜ – o  — h p q r ” f – m s ˜ g ™ ” e j ˜  f s h Lawrence Chung
  • 6. Client/Server with Transaction Processing v Two-Phase Commit Protocol 3 To synchronize updates on different machines so that they either all fail or all succeed 3 centralize the decision to commit but giving each participant the right of veto 3 like a Christian marriage Commit Coordinator Subordinate Subordinate (Root) Node Node Prepare-to-commit Prepare-to-commit Prepare-to-commit Phase 1 Record in Log Ready-to-commit Ready-to-commit Commit Commit Commit Phase 2 Complete Complete Complete t If the subordinates have spawned pieces of the transaction on other nodes, they must propagate the prepare-to-commit-command in the first phase - a transaction tree t If any of the participants returns a transaction failure, the root node tells all its subordinates to perform a rollback Lawrence Chung Client/Server Groupware 3 Why? support for business reengineering: bcfh - maximize profit change the way people communicate with each other helps manage (and track) the product thru its various phases computer-supported cooperative work (CSCW) collaborative/workgroup computing return on investment: 16% to 1666% on a median investment of $100K [a study of 65 Notes users in 1994] 3 Five foundation technologies t u v w x y z y z { | } u ~ z v  v { y } €  z ‚ u ƒ }  | y z { z } „ € … z } ƒ { … t „ › ‘  ‘       š ‹ œ ” ™ ™ ‡ • š ” “ œ “ – ” ” “ œ from electronic imaging (scanning, digitization, display, storage and retrieval) to document (component types: text, image, graphics, faxes, mail, voice clips, BBs) „ † ‡ ˆ ‰ Š ‹ ‡ Œ „  Ž   ‘ ‹ „ ‘ ‡ “ Š ” ˆ ” “ • “ – ’ thru microphones, video windows, electronic whiteboards, controlled access to shared document „ ‘ — • ˜ ” ™ š ‹ “ – electronic scheduling of meetings, sharing calendars and to do lists, triggering events e Why not just DBMS? DBMS: highly structured data Groupware: highly unstructured data document database e Why not just TP Monitors? TP Monitors: transaction processes Groupware: (currently) not transaction-oriented in the ACID sense Lawrence Chung
  • 7. Client/Server Groupware „ † ‡ ˆ ‰ Š ‹ ‡ Œ S c c d U e X g  ž Ÿ   ¡   Ÿ ¢ £ ¤ ¥ ¤ ¡ ¥ ¦ ¦ § ¨ © ¥ £ ¨ Ÿ ª « U X a q d ` i W Y S a T ‚ ` d S c c d X W T X g € ` r f ` T Y S a X g h T W T q f T Y U b ` d Form DB e-mail fax spreadsheet Processing query to accountg conferencing d Many office workers spend a high percentage of their time processing documents d The workflow river carries the flow of work from port to port, value being added along the way d The workflow definition must take into consideration: h Routes along which the object moves h Rules about what information is routed and when E.g., If the loan is over $100, 000, send it to the supervisor within the next hour or else send it to the next hop h Roles define job functions independently of the people who do it E.g., the supervisor role can be handled by users Adam and Eve Lawrence Chung Web Client/Server „ ¬  ‘ “ œ ” ˆ • œ ‡ “ ­ „ ® « 1 Page 2 3 Object 4 Internet 6 TCP/IP HTML 5 Documents ¯ ¡ ° ± ¢ Ÿ ² ³ ¡ ¢ ¯ ¡ ° º ¡ ¢ » ¡ ¢ ¼ · ½ ¾ · ½ ´ µ ¶ · ¸ ¹ You select a target URL (Univeral Resource Locator - platform-independent naming scheme) 1 http ://www.utdallas.edu :80 :~ttsx19c/java/toys.html Protocol Server Address Port Number Target Resource Path 2 Brower takes the URL, embeds it inside an HTTP request, and sends it to the server h HTTP (HyperText Transfer Protocol), a stateless RPC, is used to retrieve URL-named resources 1) establishes a client/server connection, 2) transmits and receives parameters including a returned file, and 3) breaks the client/server connection STATELESS: a new connection for each user request - simple but inefficient 3 The HTTP server receives the reqest on the port, makes a socket connection, 4 The server finds the requested HTML file (Page Object) and concatenates it with status info d HTML (HyperText Markup Language) describes the structure of a Web document, provide font and graphics info, and define hyperlinks to other Web pages Internet resources) 5 The server ships back the file, and closes the connection 6 The Browser interprets the HTML command and displays the page content and invokes a helper application (e.g., xview, audiotool) Lawrence Chung
  • 8. Web Client/Server „ ¿  À Á     À  À Á Ä ‘  ‘ ‘ Å ‘   ‡ ˆ ™ œ ” š à ™ œ ” à ˆ œ ” Æ ” ‹ ” • œ ˆ ‡ “ • • ‡ ” ˆ • ” Ç W È È X 3 Env. Var. 1 2 É d i ` d Ê U d b 5 Internet HTTP 4 Srvr CGI TCP/IP Prog 9 6 ¯ ¡ ° ± ¢ Ÿ ² ³ ¡ ¢ 7 ´ µ ¶ · ¸ ¹ 8 ¯ ¡ ° º ¡ ¢ » ¡ ¢ ¼ · ½ ¾ · ½ You click on the form’s submit button 1 The Web browser collects the data within the form, assembles it into a string of name/value pairs, specifies a POST method, the URL of the target program in the cgi-bin directory 2 The HTTP server receives the method invocation via a socket connection 3 The server parses the message to discover that it’s a POST for the cgi-bin program - start a CGI interaction: The HTTP server sets up the environment variable (e.g., content_length), in a blackboard 4 The HTTP server starts a CGI program 5 The CGI program reads the environment variables 6 The CGI program receives the message body via the input pipe 7 The CGI program does some work, typically by interacting with a DBMS, TP Monitor 8 The CGI program returns the results via the output pipe 9 The HTTP server returns the results to the Web brower Lawrence Chung Web Client/Server „ ¿  ‘ À Ë œ ‹ ” “ œ ’ Java Applet Bytecode Verifier Class Loader 4 Java Compiler Java Just-in-Time Run-time Compiler Interpreter Applet 1 Bytecode 2 Internet 5 TCP/IP 3 ¯ ¡ ° ± ¢ Ÿ ² ³ ¡ ¢ ¯ ¡ ° º ¡ ¢ » ¡ ¢ ´ µ ¶ · ¸ ¹ ¼ · ½ ¾ · ½ 1 A Web browser requests a Java applet The Browser initiates a separate TCP/IP session to download each applet within a Web page 2 The server retrieves the requested applet 3 The server sends the applet 4 The browser loads the applet into the client’s memory and executes it A poor man’s compound document architecture The applet’s region does NOT visually integrate with the rest of the page 5 The browser deletes the applet from memory when it exits the Web page Lawrence Chung