About object activation.
- From: Miguel de Icaza <miguel gnu org>
- To: otaylor redhat com, sopwith redhat com, nat nat org, gnome-components-list gnome org
- Subject: About object activation.
- Date: Mon, 13 Sep 1999 22:38:37 -0500
Hello guys,
We want to come up with a better object activation mechanism for
GNOME. The problems in the current setup are:
1. Object activation depends on an X server to be running
(because we try to locate our name server by using a well
known location in the X server).
2. Currently we support the notion of a GOAD-ID (a specific
implementation identifier), but we lack category
identifiers: a way to group similar services by the list of
the interfaces they support.
Although this can be hacked by using "virtual" CORBA
interfaces, ie for example, querying for GOAD-ids that
implement interfaces A and B, there is no way to activate
components that implement interfaces A and B in a simple
way.
3. Lack of a preference system for choosing a specific
implemenation of a service.
For example, we want the user to be able to choose his
favorite editor for editing text files. We need a call
that would map from a "service-id" to a specific "goad-id"
and come up with a scheme to deploy these.
The current code is pretty good if you ignore the above problems.
We want to extend it and upgrade it to work in a larger range of
setups. Here is a list of wish items:
1. Be able to specify the execution domain. We believe we
need a system domain (global for the entire system), a
per-user domain (valid across all sessions of the user), a
display-user domain (valid only for a single user in a
given display).
I am not sure if we want to keep the current setup which
is display bound, but there is no reason to drop it.
2. The current setup loads continously the contents of the
$sysconfdir/CORBA/servers to load the list of services and
activate the one requested.
We could move the information from a direct file system
access to querying a system daemon that would hide the
details of where the information is stored. For example,
it could keep the information on memory or as a
pre-computed data base on disk to reduce memory usage.
3. Object Properties. Besides the classification of objects
by categories, we might want to request object to have
certain attributes "footprint < 2megs". Although this is
more of a wish item.
We would have a name-service running for each domain to access
existing factory objects.
Now, there are a number of practical problems that should be
addressed as they affect directly the API exported.
Firstmost, should we have a single API call that takes a domain
argument to activate objects in the specific domain? Or should we put
the activation domain information in our .gnorba file?
ie:
enum {
GOAD_USER,
GOAD_SYSTEM,
GOAD_USER_DISPLAY,
GOAD_DISPLAY,
} GoadDomain;
goad_object_activate (GoadDomain domain,
const char *goad_id,
int activation_flags);
or we can have goad_object_activate talk to all available
name-servers and figure out where "goad_id" lives and activate itself?
Miguel.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]