A method for partitioning and allocating application components on client-server systems

Client-server systems are being widely used for transaction or distributed processing. Such systems contain three application components: interface-representation, business-process, and data-management. In a two-level client-server system, most interface-representations reside generally in the client, most data-management is usually arranged in the server. However, business-processes should be partitioned into two parts, which are allocated to client and server, respectively. The partition is important in the software design phase since it greatly affects system performance, especially the balance of task loading and the data traffic through the net connecting client and server. The partition comprises three levels: functionality level, task level, and program module level. We consider the functionality partition only, since it is at the top level, and affects system performance greatly. We apply a dataflow diagram (DFD) to specify the functions of the system under design. By using DFD, we create a discrete model and an algorithm for the functionality partition.