what you have, is a back end that's exposed. With e-groupware, this is probably xml-rpc.
we have an xml-rpc provider device that runs on the core, that marshals requests to and from said backend.
then we have a plugin running on the router (Groupware plug-in?) .. that creates the data grid generators, and any event interceptors that we wish to catch events being emitted to the provider. The datagrid and event interceptors must be done inside a plugin because these functions need direct access to pointers to the relevant classes (Orbiter_Plugin, Datagrid_Plugin, etc.)
We then feed the appropriate datagrids, which we can then place on orbiter displays.