BACKGROUND

1. Field

Embodiments relate to distribution of components of displayed data between a server and a client based on server and client load factors.

2. Background

Client-server computing is a computing model in which one or more client computational devices and at least one server computational device communicate with each other over a network. In client-server computing, a client computational device may initiate contact with the server computational device for making use of shareable resources, applications and/or data managed by the server computational device. The server computational device may receive requests from the one or more client computational resources and may share its resources, applications and/or data with the one or more client computational devices on the network. Resources, applications and data may be distributed among client computational devices and server computational devices.

SUMMARY OF THE PREFERRED EMBODIMENTS

Provided are a method, system, and computer program product in which a determination is made of values for measures that affect processing of data in a computing environment comprising a client communicatively coupled to a server, wherein the measures include data factors, client factors, and server factors. A determination is made as to whether a load on the client is greater than the load on the server by calculating a load on the client and a load on the server based on the data factors, the client factors and the server factors, and then comparing the load on the client to the load on the server. In response to determining that the load on the client is greater than the load on the server, the data is stored at a location in the server, and an indication is made in a data structure in the client of a pointer to the location in the server.

In certain embodiments, in response to determining that the load on the client is not greater than the load on the server, the data is stored in the client.

In further embodiments, the data factors comprise: a count of one or more objects to be transferred; and a size of the one or more objects.

In additional embodiments, the client factors comprise: memory requirements of a client application; a memory usage limit imposed by the client application; a metric measuring central processing unit (CPU) utilization associated with a CPU executing the client application; a metric measuring both server response latency and network communication latency between the client and the server; and an application weighting factor associated with the client application.

In yet additional embodiments, the server factors comprise: a metric measuring available server memory; a metric measuring server CPU utilization; a metric measuring a total amount of server memory associated with client-server data; and a metric measuring a total amount of memory associated with the server.

In further embodiments, the load on the client is based on determining: whether a client memory limit threshold is exceeded; whether a Time to First Byte server and network latency threshold is exceeded; whether a client CPU utilization threshold is exceeded; whether a server data size threshold is exceeded; whether a server free memory threshold is exceeded; whether a server CPU utilization threshold is exceeded; and a client application type weighting factor.

In yet further embodiments, the load on the server is based on determining: whether a client memory limit threshold is exceeded; whether a Time to First Byte server and network latency threshold is exceeded; whether a client CPU utilization threshold is exceeded; whether a server data size threshold is exceeded; whether a server free memory threshold is exceeded; and whether a server CPU utilization threshold is exceeded.

