[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [corona-dev] Use Cases
|
Hi Marcin and Corona folks,
Marcin Okraszewski wrote:
I think you should take a look for ECF. They have a service repository
similar to the OSGi one, but services might be remote. Don't know what
is the default protocol for this, but I expect that the protocols are
pluggable, since this is how ECF is being done.
That's correct (protocols are pluggable).
ECF has a small 'remote services' API/plugin that is patterned after the
OSGi services API. The idea here is not to replace the OSGi services
API, but rather expose a similar but separate API for remote
services...so that the unique aspects of remote services are explicitly
exposed (e.g. the occurrence and handling of network failure, the
ability to invoke services asynchronously and/or synchronously). See
below for some more technical explanation of the remote services API and
pointers to javadocs.
The API is protocol-independent...as Marcin suggests.
There's also an implementation of this API based upon the ECF generic
provider. It's in the plugin org.eclipse.ecf.provider.remoteservice.
Basically what it does is use the ECF shared object API to replicate the
remote service registry (a separate but equal service registry :). I
believe that Corona is using the ECF generic provider, so the API should
already be available to the server and/or client (via
IContainer.getAdapter(IRemoteServicesContainerAdapter). Of course,
alternative providers could/should be implemented (e.g. SOAP-based,
RMI-based, REST, JXTA, jgroups, etc., etc), but we haven't done this yet.
Anyway, if desired, please feel free to ask any questions either on
ecf-dev or on this mailing list and I'll try to answer in a timely manner.
Scott
Some more info:
The API is in the org.eclipse.ecf.remoteservices plugin. The javadocs
are here:
http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/
The source can be viewed here:
http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ecf/?root=Technology_Project
The ECF IContainer adapter interface for the remote services API is
http://www.eclipse.org/ecf/org.eclipse.ecf.docs/api/org/eclipse/ecf/remoteservice/IRemoteServiceContainerAdapter.html.
This API is somewhat similar to the BundleContext services API in that
it has getRemoteServiceReferences() and registerRemoteService (similar
to OSGi BundleContext.getServiceReferences() and
BundleContext.registerService).
Note that instead of Object being returned from getRemoteService()
(analogous to BundleContext.getService()), an object implementing
IRemoteService is returned. If you examine IRemoteService, you will see
that there are methods for calling remote services synchronously
(blocking call/return), asynchronously (listener), 'fire and forget',
and ability to get access to a *local proxy*, which will expose the
interface that the original caller of getRemoteServiceReferences()
specified as being
Here's the source for a test case (in org.eclipse.ecf.test.remoteservice
plugin). This tests both the service 'server' (testRegisterService()),
and the 'client' (testGetRemoteServiceReference, testGetRemoteService,
testFireRemoteService, testCallRemoteServiceWithProxy,
testCallRemoteServiceAsynch)
http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ecf/tests/org.eclipse.ecf.test.remoteservice/src/org/eclipse/ecf/tests/remoteservice/RemoteServiceTest.java?root=Technology_Project&view=markup
Note that I'm working on replacement/new/simpler test cases for the
remoteservices API with more extended tests. I'm also thinking of
introducing a RemoteServiceTracker class that would be analogous to the
org.osgi.util.tracker.ServiceTracker class to simplify use of the remote
services API.
Scott
Marcin
Bryan Hunt wrote:
Here is a set of use cases and some notes. It's kinda high-level,
but it should serve as a starting point for discussion.
Bryan
------------------------------------------------------------------------
_______________________________________________
corona-dev mailing list
corona-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/corona-dev
The contents of this e-mail are intended for the named addressee only.
It contains information that may be confidential. Unless you are the
named addressee or an authorized designee, you may not copy or use it,
or disclose it to anyone else. If you received it in error please
notify us immediately and then destroy it.
_______________________________________________
corona-dev mailing list
corona-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/corona-dev