[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] local remote services

Hi Wim,

Wim Jongman wrote:
Hi Scott,

Sounds great. What about the speed of a "local" remote sevice? Does it bypass networking?

Correct...there is no networking in the 'local' provider. Actual remote calls will be far speedier than the use of any network...although not quite as speedy as a normal method call...because the local provider does a reflective method lookup and then calls Method.invoke(...). See this method/class if you want to see the actual code implementing this lookup and reflective invocation.

org.eclipse.ecf.internal.provider.local.container.LocalRemoteServiceRegistry.callSynch(RemoteServiceRegistrationImpl, IRemoteCall)

Your question prompted the following thought/idea though...perhaps this provider could be enhanced to (optionally) introduce some random delay in the method invocation...to simulate network behavior. This would/could be very useful for testing the timing of things.




On Jun 16, 2010, at 2:15, Scott Lewis <slewis@xxxxxxxxxxxxx> wrote:

Hi Folks,

In a fit of desire to work on something new this past weekend, I implemented a new ECF remote services provider for inclusion in ECF 3.4.
This provider provides access to remote services *locally* (i.e. within the same framework).
What is the purpose for a remote service provider that is local-only? :) There are at least two purposes:

1) The ability to asynchronously access an OSGi service (i.e. AsyncCallback, IFuture, IRemoteService) [1]
2) Testing of a remote service...without the necessarily messy steps of network discovery, and distribution. This should facilitate writing/running test code for remote services...without having to have the discovery and distribution defined, deployed, configured on a given network, etc.

This new provider project is located here:

host: dev.eclipse.org (extssh or pserver/anonymous access)
cvs path: /cvsroot/rt
module: org.eclipse.ecf/providers/bundles/org.eclipse.ecf.provider.local

There's also an initial test project:

module: org.eclipse.ecf/tests/bundles/org.eclipse.ecf.tests.provider.local


[1] http://wiki.eclipse.org/Asynchronous_Proxies_for_Remote_Services
ecf-dev mailing list
ecf-dev mailing list