Sponsored Link •
To add a third-party UI to an existing service's attribute sets, you must have the service's cooperation. The service can veto your request at any of several points in the process. The steps are:
If the service proxy does not implement
the service provider has already thwarted your wishes. You won't be able to add
a third-party UI directly to the service item's attribute sets.
If the admin object does not implement
service provider has thwarted your wishes. You won't be able to add a
third-party UI directly to the service item's attribute sets.
JoinAdmin, and invoke appropriate methods to add or modify one or more
You add or modify
UIDescriptors in the same manner as
you would add or modify any kind of
Entry in the service's attribute sets.
method lets you add new
method lets you modify existing
UIDescriptors. Once again, the service provider
can veto your request, even at this step, by throwing an exception from these
Once a new
for a third-party UI is successfully added via the process described
previously, the third party won't need to add it again. From that point
forward, whenever a service registers itself with a lookup service, its service
item will include the third-party
UIDescriptor. It will also reregister
itself with any lookup services with which it is currently registered, so that
will appear there as well. Even if the service provider crashes and restarts,
it should remember the new
UIDescriptor and include it in its registrations
after the crash and restart.
On the other hand, the UI, UI factory, and possibly the attributes require
class files to be available in some codebase. Although the third party never
needs to worry about the
being included in future service registrations, the third party must make sure
the class files are forever available at some codebase.
One potential problem with adding a third-party UI is that in a strict client-side security policy, downloaded code will by default only have permission to connect back to the host from which the code was downloaded. In that case, if the third-party UI's codebase is on a different host than the service proxy's codebase, the service proxy won't be allowed to talk back to its host at the behest of the UI. Therefore, for a third-party UI to work in practice, either the third-party UI's codebase must be on the same host that serves the service's codebase, or the client must specifically relax its security policy in order to use the third-party UI.