[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ecf-dev] plan for remote services admin
- From: Scott Lewis <slewis@xxxxxxxxxxxxx>
- Date: Tue, 28 Sep 2010 14:11:24 -0700
- Delivered-to: firstname.lastname@example.org
- User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:18.104.22.168) Gecko/20100915 Thunderbird/3.1.4
I've begun work on the OSGI 4.2 remote service admin specification (chap
122)....and I wanted to throw out a short proposed plan for further
coordinated work on the implementation. Please comment on the
plan...and if you are able/willing to contribute to some part of this,
please make it known on the relevant bug (see below).
a) The plan bug for this enhancement is . Let's use this bug (as
well as this mailing list) to coordinate further work on the ECF remote
service admin implmentation.
b) The OSGi 4.2 spec is available here from the OSGi alliance . The
remote services admin spec (chap 122) is part of the Enterprise Experts
c) There are OSGi API classes that are part of the spec, and I've
submitted a CQ for use/redistribution of these classes. Happily the CQ
for our use is a piggy-back CQ, and has already been approved .
Just for everyone's reference, the spec also has a piggyback CQ that's
been approved as well .
d) I've committed a new project to hold these OSGi classes for our
usage/ecf impl development...it's now here
NOTE: These are classes from the OSGi alliance...they are not ECF
classes...and we cannot modify them (the src is actually in
src.zip...and the src can be accessed by opening the associated class
file in the Eclipse java editor).
e) I've created the following new project and started the implementation
of remote service admin. The implementation is just beginning and I've
so far focused on just implementing the 'discovery' part of remote
service admin (i.e. implementing EndpointListener with the ECF discovery
API/IServiceListener). Even this is not completed yet, but it's pretty
close at this point.
The next steps are to
f) Finish implementation of the discovery portion. Support needs to be
added to a) use the Equinox eventmgr to asynchronously (with
queue/thread) call the registered EndpointListeners; b) on startup of
the ECF remote services admin bundle to call any previously registered
event listeners with any extant EndpointDescriptions; c) support the
modification of the filter service property for EndpointListeners
(according to spec the filter property on EndpointListeners can be
modified, and this changes the matching behavior for notification of
g) Begin the implementation of the Topology manager and the Remote
Services Admin service (defined by the RemoteServiceAdmin OSGi
interface). These two pieces will be where integration with the
existing ECF remote services implementation (discovery and distribution)
will be necessary. In most cases it will be straightforward to have the
functions in the current ECF remote services implementation be replaced
by and use the API classes from the remote service specification. For
example, in the current distribution implementation we have the
equivalent of this function of remote services admin
Collection<ExportRegistration> exportService(ServiceReference reference,
Map<String, Object> properties);
Now that these classes are available (ExportRegistration) we will be
able to make implementations (and/or subclasses) that represent the
ExportRegistration created by exporting a service via ECF remote
So in general this will be an exercise in taking the OSGi API classes,
and creating ECF-specific implementations that take the existing
distribution code and perform the appropriate ECF operations (e.g.
exporting/distributing a service via the appropriate remote service
That's the basic plan...it's frankly not a huge thing, but it will take
some coordination/effort by several people over the next few weeks.
Please let all know what you think via the mailing list...and register
your own interest and ability to participate in the implementation
effort, integration, testing, documentation, etc by adding yourself to
the bug .