CITS3002 Computer Networks  
prev
next CITS3002 help3002 CITS3002 schedule  

Partitioning Client/Server Responsibilities

In moving a single, monolithic application to a separated client/server configuration, we must address a number of issues:

  1. Is there a functional partition at all?

    Are there separate responsibilities that can be performed by separate tasks?
    Should they be separated?

  2. Is there a data-driven partition?

    Can different sections of the data be centralized, or split between multiple tasks?
    Can these multiple tasks execute on separate hardware, with separate address-spaces?
    Should distinct data partitions be replicated?

  3. Is there an extensive use of global variables?

    Is there significant state information that controls the execution of the application?
    Is it possible, and desirable, to centralize this information anyway?

  4. Are there any hidden intra-application communication mechanisms (such as variables, exceptions, or signals)?

    Is there unusual, possibly asynchronous, control flow in the application (e.g. the use of global goto's, or asynchronous signals)?




CITS3002 Computer Networks, Lecture 9, Client/server design, p6, 1st May 2024.