Matev¾ Tadel: Gled - an Implementation of a Hierarchic Server-Client Model

Description of core functionality of Gled and basic ideas of the implementation.

Available versions

Abstract

Gled is an implementation of a hierarchic server--client model written in C++, having an outside form of an object oriented framework. Master server exposes its object space to its first-level clients which in turn provide mirroring facilities to second-level clients and also export their own object spaces. Each client therefore plays a role of a client, a proxy and a server. Infrastructure for propagation and broadcasting of method invocation requests is provided and is general enough to allow for an efficient access control. Synchronization of object spaces is achieved via streaming of object graphs and a time-ordered delivery of method invocation requests. Objects can acquire their own threads to perform different tasks such as computation, data acquisition & analysis or dynamic visualization. The obtained results can be pushed to other computing nodes or storage devices. As threads are spawned and controlled by standard method invocation requests, schedulers & job control mechanisms spawning across a whole Gled cluster can easily be implemented. On viewer level, Gled features automatically generated GUI widgets and a sophisticated 3D rendering infrastructure.