[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ecf-dev] RPC for Remote P2 repositories
|
I am all for most of what you suggest. I do think that we should
separate the issues of remote p2 and remote messaging. For example it
is not clear that remote references and tc would me something we want
to get into for p2. As such, ECG should be doing the comma
infrastructre and then p2 should use that to make available it's
function remotely. This this way the story is clear to consumers and
we end up with a cleaner structure.
Jeff
On Jul 4, 2008, at 10:14 PM, Scott Lewis <slewis@xxxxxxxxxxxxx> wrote:
Hi Jeff,
Jeff McAffer wrote:
Hey Thomas
The p2 repo API has not been particularly designed to support
remoting. That is, I*Repository was not really intended to be used
as a remote interface. Frankly we just did not think of it that
way. Instead we imagined that people wanting to have a repo on
another server would implement the actual repo using whatever
server side technology appropriate (e.g., database, sql, ...) and
then implement a "client-side" I*Repository. The client side would
talk to the server using mechanisms appropriate to the
configuration. There is no expectation that the server be Java etc
etc. The client is also free to do any amount of caching etc that
it wants to.
In this way the users of I*Repository are completely isolated from
the implementation details of the server and the repo implementors
are free to optimize/implement as they choose.
Does your usecase fit this model?
Of course, it would also be interesting to consider changes to the
p2 API to better facilitate remote calls. Please open enhancement
requests if you see any such opportunities.
I think it would be desirable to have a completely separate/new/
simpler API for remote p2 access rather than attempt to modify the
p2 API to facilitate transparent remote access.
Why?
1) There will likely be a number of differences in API behavior for
things like failure/exception handling, timing (e.g.
IProgressMonitor, etc), and synchronization
2) Consistent/proper handling of mechanisms like pass-by-reference/
distributed garbage collection
3) Ability to use asynch messaging, futures, as well as call/return
semantics for remote access...which is very helpful in remote
situations, but unavailable via transparent remoting
4) Ability to use multiple/various network transport bindings as per
ECF's remote services API
5) Ability to use network discovery mechanisms for remote access
(i.e. discovery API)
I would propose that ECF (with p2/Equinox/communities) should take
this on as a sub-component within the Runtime project (where ECF is
headed) and work together among interested parties.
There is already some work begun in these directions within
ECF...e.g. http://wiki.eclipse.org/Remote_Eclipse_RCP_Management
and obviously Thomas has already done some work on this as well. So
given the basic goal here (remote provisioning of Equinox/RCP/
Eclipse apps) it seems to me to be a good area for the Runtime
project, Equinox p2, and ECF.
Scott
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev