Managing Data
 
If you are working with large datasets, you probably want to keep them on the server. Typically, the server has the memory and storage resources that large datasets require. On the other hand, client machines typically have limited memory and storage capacity. Furthermore, the transfer of large datasets between the client and server (for example, across the Internet) can consume network resources.
JWAVE addresses this problem with data proxies. A proxy is an object-oriented design term that refers to a surrogate or placeholder that controls access to another object. A data proxy, then, is a surrogate object that refers to data.
If the data is, for instance, a large multidimensional array stored in a PV‑WAVE session, the client can use a proxy object to refer to that data. Using a proxy object, the client can request operations to be performed on the data, such as:
*running an analysis or filtering program on the data
*copying the data
*destroying the data
*renaming the data
*retrieving the data (returning it to the client)
All of these operations are controlled from the client while the data physically resides on the server, which greatly reduces the burden on client and network resources. Unless data is explicitly retrieved, it never has to be downloaded to the client.