[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ecf-dev] DS + ECF + RFC119 + EMF Workflow example?
|
Hi Bryan,
Bryan Hunt wrote:
Hi Scott,
It just occurred to me that creating a demo using DS + ECF + RFC119 +
EMF Workflow could be a very interesting display of the technology.
One of the things I've been needing to do is add the ability to
migrate a workflow from one server to another (think if it as a
controlled worm). We could set up a DS that runs a workflow, and a
workflow orchestration strategy that looks for a service using a
filter to run the next stage of the workflow. The service would be
remote which would transfer the workflow to that server to execute the
next stage. Interested?
Yes, very much so. I agree that the DS+remote services+EMF workflow is
a very nice use case.
If you agree and if possible, I would like to get a very small (to
start) set of bundles that show the basics such a thing into the ECF
examples area...along with wiki-based tutorial docs. (My model these
days is the load balancing example that I just did). Would this be
possible for you and/or me/others to work on cooperatively?
Again I think this is a terrific idea...to show not only DS+remote
services, but also drive it with the EMF workflow use case (I like your
recent blog posting, BTW). What can/should I do to help?
BTW, there is one thing that was added in ECF 3.1 that I've forgotten to
mention/document yet...that may be interesting/useful to you and others
that are using DS with remote services. It's this interface
(new/present in 3.1):
org.eclipse.ecf.remoteservice.IRemoteServiceProxy
I also modified the r-osgi and ecf generic remote services provider impl
to *add this interface to any proxy that's created*. So, for example,
if (using DS) you have a service binding that's something like:
void bind(IHello remoteServiceProxy) <-- this method gets called by DS
when an IHello remote service proxy gets discovered/created.
It's now possible for the code that uses the proxy to have code like this:
void bind(IHello remoteServiceProxy) {
if (remoteServiceProxy instanceof IRemoteServiceProxy) {
IRemoteService remoteService = ((IRemoteServiceProxy)
remoteServiceProxy).getRemoteService();
// use IRemoteService! ...e.g. asynchronous messaging, futures,
etc.
}
else {
// it's not a remote service proxy...so we just use it as we
would have before...i.e. as a transparent remote reference
}
}
Again, I'm not trying to 'hide' this or anything, I just haven't had the
time recently to document it properly. Thought several folks might be
interested in this, as it allows DS-based clients (that will be bound to
the service instance by DS) to access the ECF-provided alternative
calling patterns (i.e. non-blocking messaging, etc).
Thanks for listening...I'll put this into the wiki and then it will be
more properly documented :)...and will send a note to ecf-dev as well.
Scott